【发布时间】:2011-05-13 09:24:17
【问题描述】:
我正在尝试在办公室使用 Junit (JVM 1.4):我写了很多类扩展 TestCase,但我没有写任何类扩展 TestSuite。 问题是我不太了解 TestSuite 必须测试什么:
-
一个包的公共契约(一个包的所有公共类的所有公共方法)。
示例:public class TestPackageAAA extends TestSuite{ //... public void testSomething{ testSuite.add(new TestFirstClass()); testSuite.add(new TestSecondClass()); } //... }FirstClass 和 SecondClass 存在于同一个包 AAA 中。
-
功能流程,翻译成单类未集成的列表?
public class TestProcessBBB extends TestSuite{ //... public void testSomething{ testSuite.add(new TestFirstClass()); testSuite.add(new TestSecondClass()); } //... }
FirstClass 作为名为 BBB 的用户进程的第一步(如 webapp 中的 CRUD 操作),SecondClass 作为同一进程的第二步等(在此测试中,FirstClass 和 SecondClass 不通信)。
您如何组织您的 TestSuite?第一种方式还是第二种方式?还是其他方式?
编辑: 我错了,因为我在示例中重复了相同的类名称,ergo 令人困惑。 这是example的配置:
src
|-->{package} **AAA**
|--->{class}FirstClass
|--->{class}SecondClass
|-->{package} **XYZ**
|-->{class}ThirdClass
测试
{package} **AAA**
|--->{class}TestFirstClass extends TestCase
|--->{class}TestSecondClass extends TestCase
|-->{package} **XYZ**
|-->{class}TestThirdClass extends TestCase
- 第一种方式:
TestSuiteAAA(放在testing目录的根目录下)是test.AAA包中所有TestCase的组合
testSuite.add(new TestFirstClass());
testSuite.add(new TestSecondClass());
- 第二种方式:
TestSuiteBBB(放置在测试目录的根目录中)是所有参与执行功能流程的TestCase 的组合(例如:为电子商务网站的管理员发送预定的电子邮件)。 TestSuiteBBB 调用 FirstClass 和 ThirdClass 的方法,每个类不调用其他类的方法。
testSuite.add(new TestFirstClass());
testSuite.add(new TestThirdClass());
JUnit 允许我以两种方式进行(我现在在 Eclipse 中对它们进行编码并运行):你更喜欢什么?
PS 对包结构的格式表示抱歉:)
【问题讨论】:
标签: unit-testing testing junit test-suite