文档介绍:测试驱动开发(Test Driven Development)
2009-11
什么是单元测试
怎么做单元测试
为什么会出现测试驱动开发
什么是测试驱动开发
怎么做测试驱动开发
总结
一、什么是单元测试
单元测试是一段能够放在批处理中自动运行的,用来测试class的程序。单元测试测试一小段代码或一个足够小的功能。单元测试程序调用这小段代码(无序),并验证返回的结果是否符合预先设定的结果。
每个单元测试至少应该有两个测试例子( Test Case ):
Negative
Positive
二、怎么做单元测试(以Junit为例)
,Tests应该放在对应的包中,但应处于不同的物理位置。(需求测试的都可测试[异常也可测试],特别是业务层是测试的重点),如:CSerServiceTests
,如:
public class CSerServiceTests extends TestCase
二、怎么做单元测试
2. 设定 setUp() and tearDown()
如果需要,可以在setUp()中初始化需要的全局变量,资源等(比如
Database Connection, File I/O或Mock Objects等)
相应的,可以在tearDown()中释放资源(Database Connection,File I/O和Mock Objects等)
public class CSerServiceTests extends TestCase{
/**
* ***@throws
*/
***@Before
public void setUp() throws Exception {
}
/**
* ***@throws
*/
***@After
public void tearDown() throws Exception {
}
}
二、怎么做单元测试
***@Test
public void ess() {
CSerService cserService = new CSerServiceImpl();
CSer oc = new CSer();
("10001");
("1234");
CSer cser = (oc);
(cser);
}
***@Test
public void testLoginFail() {
CSerService cserService = new CSerServiceImpl();
CSer oc = new CSer();
("10001");
("123456");
CSer cser = (oc);
(cser);
}
二、怎么做单元测试
在eclipse中按ctrl+alt+x再按t执行测试,运行结果(绿条表示测试通过、红条表示测试未通过)
二、怎么做单元测试
4. Test Suite用来运行所有的Unit Tests
每个Package Level都由一个AllTests Test Suite
在每个Test Suite中,
加入在本package 中的所有单元测试例子( Unit Test Cases )
加入子Package 中的所有AllTests Suite
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite("Test for .");
//$JUnit-BEGIN$
();
();
//$JUnit-END$
return suite;
}
}
二、怎么做单元测试
运行结果
二、怎么做单元测试
,而要实现环境的搭建是很复杂或根本无法搭建时(如连接数据库、远程访问等),那你将需求mock的帮助。Mock是帮助你模拟环境的好帮手,以EasyMock为例,你需求做好以下几个步骤:
使用 EasyMock 生成 Mock 对