【发布时间】:2012-03-28 04:27:00
【问题描述】:
我在JUnit 测试结构方面遇到了架构难题。
我的测试类的流程测试从大文件加载字典。由于内存不足、找不到文件、文件结构错误等原因,该类可能会失败。
首先,按特定顺序运行测试很有意义:检查内存,然后检查文件是否存在,然后检查其结构。这将非常有帮助,因为如果我们没有足够的内存,适当的测试将会失败并给出有意义的输出,而不是神秘的OutOfMemoryException。而且,我不必费时费力地一遍遍地读取文件。
另一方面,测试应该是独立的、自包含的实体。
对如何设计测试套件有任何想法吗?
【问题讨论】:
-
我很好奇:当您收到
OutOfMemoryError时,究竟有什么神秘之处? -
一个。它不会提示您所需的所需内存量。湾。如果使用交换文件,则可能需要很长时间才能引发异常。
-
你知道
@Before注解吗?或者Assume.assumeTrue? -
@RolandIllig 是的。如果不能保证测试的顺序,这些就没那么有用了。
-
我的想法是让
checkHeapMemory成为@Before方法,因为它并不是真正的测试,而是先决条件。checkFileExists也一样。那么问题是您是想静默跳过测试(在实际测试方法中使用assumeTrue)还是想快速失败(使用@Before)。
标签: unit-testing architecture junit integration-testing