有人可以告诉我如何使用junit测试来测试构造函数吗?
我有以下内容。
public Controller() {
view = null;
model = null;
data = null;
logger = Logger.getLogger(Controller.class);
results = Results.getInstance();
}
答案 0 :(得分:2)
没有什么能阻止你在JUnit测试中调用构造函数。
如果您关心的是静态方法调用(例如Results.getInstance()
),那么您需要在测试架构中添加类似PowerMock
或JMockit
的内容。
答案 1 :(得分:2)
一般来说,建议是在测试中构造对象,然后确认它是否正确行动(getters返回正确的东西等)。
但退后一步:为什么你想测试这个构造函数?它没有做任何特别有趣或棘手的事情(这是一件好事!构造函数通常不应该做太多)。如果构造此类的任何实例,则将隐式测试构造函数。
通常,对于构造函数,我会进行一些带有错误输入的测试(例如null arg),并确认构造函数会抛出异常 - 但不是很多。在构造函数的情况下,它没有args,但它确实依赖于Results的状态,因此您应该将Results放入不同的状态,然后调用构造函数。 (顺便说一句,结果单身可能不是一个好主意,部分是因为它使测试更棘手;你应该搜索为什么singletons are bad。)
JUnit的网站提供了一些我觉得有用的建议:“test until fear [of having bugs in your code] turns to boredom。”如果构造函数不访问全局状态(即,不使用单例),那应该是一个非常低的条。