我正在尝试在办公室使用 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?第一种方式还是第二种方式?或者以另一种方式?
编辑:我错了,因为我在示例中重复了相同的类名,所以这很令人困惑。这是示例的配置:
源代码
|-->{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(放置在测试目录的根目录下)是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对包结构的格式感到抱歉:)