繁体   English   中英

Seam Component.getInstance()和单元测试

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM