2010-06-08 110 views
0

我是junit的新手,所以任何帮助表示赞赏。junit模拟对象

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

+5

您的命名显示了为什么不遵循一套好的命名约定是完全不可理解的。 “Testethipmapping”?真?查看Java代码约定:http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html – 2010-06-08 17:33:04

回答

0

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

还有其他选项不涉及sysconfig.java中的更改,但很难在没有看到代码的情况下提供特定的建议。

3

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

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

    public String someMethodIWantToTest() { 
     return mapping.doSomeStuffThatReturnsAString(); 
    } 

问题,像这样的为什么像春天和谷歌吉斯的依赖注入框架是如此受欢迎,虽然简单的情况下,像上面你不需要他们。