如何测试构造函数?

时间:2015-08-17 13:13:17

标签: java junit

有人可以告诉我如何使用junit测试来测试构造函数吗?

我有以下内容。

public Controller() {
    view = null;
    model = null;
    data = null;
    logger = Logger.getLogger(Controller.class);
    results = Results.getInstance();
}

2 个答案:

答案 0 :(得分:2)

没有什么能阻止你在JUnit测试中调用构造函数。

如果您关心的是静态方法调用(例如Results.getInstance()),那么您需要在测试架构中添加类似PowerMockJMockit的内容。

答案 1 :(得分:2)

一般来说,建议是在测试中构造对象,然后确认它是否正确行动(getters返回正确的东西等)。

但退后一步:为什么你想测试这个构造函数?它没有做任何特别有趣或棘手的事情(这是一件好事!构造函数通常不应该做太多)。如果构造此类的任何实例,则将隐式测试构造函数。

通常,对于构造函数,我会进行一些带有错误输入的测试(例如null arg),并确认构造函数会抛出异常 - 但不是很多。在构造函数的情况下,它没有args,但它确实依赖于Results的状态,因此您应该将Results放入不同的状态,然后调用构造函数。 (顺便说一句,结果单身可能不是一个好主意,部分是因为它使测试更棘手;你应该搜索为什么singletons are bad。)

JUnit的网站提供了一些我觉得有用的建议:“test until fear [of having bugs in your code] turns to boredom。”如果构造函数不访问全局状态(即,不使用单例),那应该是一个非常低的条。

相关问题