junit模拟对象

时间:2010-06-08 17:30:17

标签: java unit-testing

我是junit的新手,所以感谢任何帮助。

我有一个名为sysconfig.java的类,我写了一个 称为TestSysconfig.java的junit类文件,用于测试sysconfig.java中的某些方法。 我在sysconfig.java中测试的方法调用另一个类文件“ethipmapping.java” 我已经创建了一个这个类文件的模拟器作为Testethipmapping.java。 所以我的问题是如何告诉sysconfig.java调用这个模拟对象?

3 个答案:

答案 0 :(得分:3)

而不是将“new”运算符与您正在测试的类混合,您需要将ethipmapping的测试实例传递给您正在测试的sysconfig类,无论是在构造函数中还是通过setter。所以,你正在测试的课程看起来像是:

   private EthipMapping mapping;
   public Sysconfig(EthipMapping mapping) {
        this.mapping = mapping;
    }

    public String someMethodIWantToTest() {
        return mapping.doSomeStuffThatReturnsAString();
    }
像这样的问题是为什么像spring和google guice这样的依赖注入框架如此受欢迎,尽管对于像上面这样的简单情况你不需要它们。

答案 1 :(得分:1)

您可能对Mockito感兴趣。

答案 2 :(得分:0)

所以我的问题是如何告诉sysconfig.java调用这个模拟对象?
通过调用它。无论你在何处创建'ethipmapping'对象(new ethipmapping()),你都必须创建Testethipmapping。

还有其他选项不涉及sysconfig.java中的更改,但是如果不看代码就很难给出具体的建议。