【发布时间】:2016-08-28 19:09:21
【问题描述】:
我是单元测试的初学者,我遇到了一些我不知道如何解决的失败。我试图测试我的简单类 Employee 我有创建对象的静态计数器,因此新员工可以获得连续的数字和默认名称,如“Name1”、“Name2”等。这是我的默认启动块:
{
currentNr = ++count;
setName("Name"+currentNr);
setSurname("Surname"+currentNr);
}
我用很少的方法编写了一个 JUnit 类。它们工作正常,但有关计数器的方法只有在我单独运行它们时才起作用(当我将它们保存为单独的测试时它们也起作用,但是有这么多文件似乎很乱)。 当我使用所有测试方法运行该类时,计数器正在添加更多对象,并且我不知道为什么/何时/何处测试是独立的。在测试方法中,我正在创建一个对象并使用 assertEqual 检查计数器。寻找解决方案我尝试使用@Before、@After 等,但它是相同的,或者我可能不知道如何正确使用它。 我的问题是我该怎么做才能让所有测试方法正常工作,或者我应该在 @Before 方法中写什么(我尝试将对象添加和删除到 ArrayList 和/或设置为 null)。我想只有在单独运行时才能进行测试是不可接受的。 任何帮助将不胜感激。谢谢!
【问题讨论】:
-
能否贴出源码,即Employee类和单元测试?
-
测试在某种程度上是独立的,但静态字段将继续存在并在测试之间保持其值。
-
也许在您的测试中,您想在开始和结束时读取计数器的值,然后减去并测试差异是否符合预期?
标签: java unit-testing junit