我阅读了几个教程和手册,但它们都跳过了我实际需要的部分,这是您运行这些东西的实际部分。在测试中使用AssistedInject
我的场景如下。
我有一个Connection
接口:
public interface Connection {
void open(Selector selector);
void send(NetMessage message);
}
我有一个生产的实现,需要一个SocketFactory
:
public class ConnectionImpl implements Connection {
// members
@Inject
public ConnectionImpl(@Assisted SecurityMode securityMode, @Assisted long connectionId,
@Assisted EntityAddresses addresses, SocketFactory socketFactory)
所以我创建了一个ConnectionFactory
:
public interface ConnectionFactory {
SioConnection create(SecurityMode securityMode, long connectionId, EntityAddresses addresses);
}
现在,我有两个实现SocketFactory
:SocketFactoryProd
和SocketFactoryTest
。
我正在为Connection
创建一个测试,我想创建一个ConnectionImpl
与SocketFactoryTest
,我真的不明白我是如何做到的。这是我不断失踪的部分,我应该在我的测试中写下(或在测试类setUp
)。
你想要单元测试哪一个类?你能否发表单元测试的草稿版本? –
@SergeyBrunov他没有说这是一个单元测试。这可能是一个功能或集成测试,他试图绑定一个备用网络。 – Gene
我想测试连接,但我想使用一个connectionFactory来创建连接,我尝试测试和@注入它。所以我想了解我应该写什么(以及在哪里)告诉connectionFactory(它是测试类中的成员)使用SocketFactory的代码是SocketFactoryTest.class – slashms