驱动模块和装模块的概念——Junit单元测试案例
驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。
桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。
虽然各个模块开发好了,在做单元测试时,也是需要写驱动模块与桩模块的。因为做单元测试一个最重要的原则就是把被测试的单元与其他关联模块隔离开来进行测试。
测试代码:
Public class DemoTest { public int demofunc() { int n1 = 4, n2 = 5; int a; a = sumFunc(n1, n2); System.out.println(a); retrun a; } //模块A Public int sumFunc(int a, int b) { int c1, c2; c1 = factorial(a); c2 = factorial(b); return (c1 + c2); }//模块B Public int factorial(int n) { Int rtn = 1; Int i; for (i = 1; i<= n; i++) { rtn *= i; } return (rtn); }//模块C }
1、请分别对模块A,B,C进行单元测试。
2、新建class,同时在该项目中的properties 中java build path ,add library-junit 。然后新建junit文件。
3、格式如下:
对模块A进行单元测试时:
01.是否需要驱动模块(是/否)?是
02. 如果需要,你编写的驱动模块(拷贝或截图):
@Test public void testDemofunc() { body.demofunc(); assertEquals(144, body.demofunc()); }
如果需要,你编写的桩模块(拷贝或截图):
public int sumFunc(int a, int b) { return (144); }//模块B
03. 运行结果分别(截图):
04. 模块A是否被正确编码(是/否):是
对模块B进行单元测试时:
01. 是否需要驱动模块(是/否)?是
02.如果需要,你编写的驱动模块(拷贝或截图):
@Test public void testSumFunc() { assertEquals(144, body.sumFunc(4,5)); }
如果需要,你编写的桩模块(拷贝或截图):
public int factorial(int n) { if(n==4) return (24); else return(120); }//模块C
03. 运行结果分别(截图):
04. 模块B是否正确被编码(是/否):是
对模块C进行单元测试时:
01. 是否需要驱动模块(是/否)?是
02. 如果需要,你编写的驱动模块(拷贝或截图):
@Test public void testFactorial() { body.factorial(4); body.factorial(5); assertEquals(24, body.factorial(4)); assertEquals(120, body.factorial(5)); }
运行结果分别(截图):
03. 模块C是否正确被编码(是/否):是