J'ai lu plusieurs tutoriels et manuels, mais tous ignorent la partie dont j'ai réellement besoin, c'est-à-dire la partie où vous exécutez la tâche.Utilisation d'AssistedInject dans les tests
Mon scénario est le suivant.
J'ai une interface Connection
:
public interface Connection {
void open(Selector selector);
void send(NetMessage message);
}
J'ai une mise en œuvre de la production qui a besoin d'un SocketFactory
:
public class ConnectionImpl implements Connection {
// members
@Inject
public ConnectionImpl(@Assisted SecurityMode securityMode, @Assisted long connectionId,
@Assisted EntityAddresses addresses, SocketFactory socketFactory)
Je créé un ConnectionFactory
:
public interface ConnectionFactory {
SioConnection create(SecurityMode securityMode, long connectionId, EntityAddresses addresses);
}
Maintenant, je avoir deux implémentations de SocketFactory
: SocketFactoryProd
et SocketFactoryTest
.
Je crée un test pour Connection
et je veux créer un ConnectionImpl
avec SocketFactoryTest
, et je ne comprends vraiment pas comment je fais exactement. C'est la partie que je continue à manquer, ce que je devrais écrire dans mon test (ou dans la classe de test setUp
).
Quelle classe essayez-vous de tester à l'unité? Pourriez-vous s'il vous plaît poster la version préliminaire de l'unité-test? –
@SergeyBrunov Il n'a pas dit que c'était un test unitaire. C'est probablement un test fonctionnel ou d'intégration, où il essaie de lier un autre réseau. – Gene
J'essaie de tester Connection, mais je voudrais utiliser un connectionFactory pour créer la connexion que j'essaie de tester et @injecter. Donc j'essaie de comprendre ce que je devrais écrire (et où) le code qui dit à connectionsFactory (qui est un membre dans la classe de test) que le SocketFactory à utiliser est le SocketFactoryTest.class – slashms