使用JUnit 进行测试

原文链接:http://caterpillar.onlyfun.net/Gossip/JUnit/TestSuite.htm

/* * TestCase与TestSuite都实现了Test接口,其运行方式为 Command 模式 的一个实例, * 而TestSuite可以组合数个TestSuite或TestCase,这是 Composite 模式 的一个实例。 * * * 事实上TestRunner并不直接运行 TestCase上的单元方法, * 而是透过TestSuite,TestSuite可以将数个TestCase在一起,而让每个TestCase保持简单。 */ import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; public class JUnitTest extends TestCase{ public JUnitTest(String testMethod){ super(testMethod); } // TestCase(){} int i; @Override protected void setUp() throws Exception { i = 5; } @Override protected void tearDown() throws Exception { i = 100; } //在eclipse中可以不用写main函数而直接执行此测试类 public static void main(String[] args) { /* * (1) * 如果您没有提供任何的TestSuite,TestRunner会自己建立一个, * 然后,这个 TestSuite会使用反射(reflection)自动找出(所有的)testXXX()方法。 */ // junit.textui.TestRunner.run(JUnitTest.class); /* * (1) * 如果要自行生成TestSuite,则在继承TestCase之後,提供静态的(static)的suite()方法 */ // junit.textui.TestRunner.run(suite1()); /* * (2) * * 当然,也可以如下定义 suite()方法。 * 根据需要加入测试的(部分/全部)方法,使用addTest()就可以了,suite()方法传回一个TestSuite对象, * 它与 TestCase都实现了Test接口,TestRunner会调用TestSuite上的run()方法, * 然後TestSuite会将之委托给 TestCase上的run()方法,并执行每一个testXXX()方法。 */ junit.textui.TestRunner.run(suite2()); /* * (3)使用suite.addTestSuite * 可以一次运行所有的测试,而不必个别的运行每一个测试案例, * 这里,各个TestSuite中如果有一个没有成功执行,则整体测试不通过。。。 */ // junit.textui.TestRunner.run(suite3()); } public void testIt() { assertEquals(5, i); } public void testIt1() { assertEquals(5, 6); } /** * (1)如果您要自行生成TestSuite,则在继承TestCase之後,提供静态的(static)的suite()方法 */ public static Test suite1() { return new TestSuite(JUnitTest.class); } /** * (2)使用addTest()方法仅对部分testXXX()进行测试 */ public static Test suite2() { /*注意: * 这里如果“new TestSuite(JUnitTest.class)”这样写, * 则,将对JUnitTest中的所有testXXX()方法都进行了测试。 * 并不是希望的:仅对“suite.addTest”添加的部分待测试的方法进行测试了 * * 不能像下边这样写: * TestSuite suite = new TestSuite(JUnitTest.class); */ TestSuite suite = new TestSuite();//正确写法 suite.addTest(new JUnitTest("testIt"));//注意,要添加相应的JUnitTest(String testMethod)构造函数! //suite.addTest(new JUnitTest("testIt1")); return suite; } /** * (3)使用suite.addTestSuite * 可以一次运行所有的测试,而不必个别的运行每一个测试案例, * 这里,各个TestSuite中如果有一个没有成功执行,则整体测试不通过。。。 */ public static Test suite3() { TestSuite suite = new TestSuite(); suite.addTestSuite(JUnitTest.class); suite.addTestSuite(JUnitTest.class);//这里又写了一遍“JUnitTest”。实际测试中写另外的类!! return suite; } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值