我正在调用我Component.getInstance(Needed.class)
的一个类的构造函数,它不是接缝组件。这很好用,但我试图用单元测试来覆盖它,而我得到的是IllegalStateException
上面的代码。有没有办法用测试覆盖 Component.getInstance ?
顺便说一句,我正在使用 unitils 库...在此先感谢
我正在调用我Component.getInstance(Needed.class)
的一个类的构造函数,它不是接缝组件。这很好用,但我试图用单元测试来覆盖它,而我得到的是IllegalStateException
上面的代码。有没有办法用测试覆盖 Component.getInstance ?
顺便说一句,我正在使用 unitils 库...在此先感谢
您在类中使用服务定位器模式,它不适合单元测试。尝试转向依赖注入模式。这使得单元测试更加容易。
服务定位器示例:
public class MyService : Service
{
private Needed dependency;
public MyService()
{
this.dependency =
Component.getInstance(Needed.class);
}
}
依赖注入示例:
public class MyService : Service
{
private Needed dependency;
public MyService(Needed dependency)
{
this.dependency = dependency;
}
}
在进行依赖注入时,您的类将不会引用容器(Component
在您的情况下),这使得对类进行单元测试变得更加容易。