[英]Difference between Seam Component.getInstance() and JNDI context lookup
[英]Seam Component.getInstance() and unit testing
我在我的一个类(不是接缝组件Component.getInstance(Needed.class)
的构造函数中调用Component.getInstance(Needed.class)
。 那很好,但是我试图用单元测试来覆盖它,而我得到的是上面一行中的IllegalStateException
。 有没有办法用测试覆盖Component.getInstance?
顺便说一下,我正在使用unitils库...在此先感谢
您在类中使用了Service Locator模式 ,该模式不太适合单元测试。 尝试转到依赖注入模式 。 这使得单元测试更加容易。
服务定位器示例:
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
)进行任何引用,这将使对类进行单元测试更加容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.