IMoney money= MoneyBag.create(new Money(26, \\
assertEquals(new Money(54, \}
public void testNormalize2() {
// {[12 CHF][7 USD]} - [12 CHF] == [7 USD] Money expected= new Money(7, \
assertEquals(expected, fMB1.subtract(f12CHF)); }
public void testNormalize3() {
// {[12 CHF][7 USD]} - {[12 CHF][3 USD]} == [4 USD]
IMoney ms1= MoneyBag.create(new Money(12, \\
Money expected= new Money(4, \assertEquals(expected, fMB1.subtract(ms1)); }
public void testNormalize4() {
// [12 CHF] - {[12 CHF][3 USD]} == [-3 USD]
IMoney ms1= MoneyBag.create(new Money(12, \\
Money expected= new Money(-3, \
assertEquals(expected, f12CHF.subtract(ms1)); }
public void testPrint() {
assertEquals(\
}
public void testSimpleAdd() { // [12 CHF] + [14 CHF] == [26 CHF] Money expected= new Money(26, \assertEquals(expected, f12CHF.add(f14CHF)); }
public void testSimpleBagAdd() {
// [14 CHF] + {[12 CHF][7 USD]} == {[26 CHF][7 USD]}
IMoney expected= MoneyBag.create(new Money(26, \\
assertEquals(expected, f14CHF.add(fMB1)); }
public void testSimpleMultiply() { // [14 CHF] *2 == [28 CHF]
Money expected= new Money(28, \assertEquals(expected, f14CHF.multiply(2)); }
public void testSimpleNegate() { // [14 CHF] negate == [-14 CHF] Money expected= new Money(-14, \assertEquals(expected, f14CHF.negate()); }
public void testSimpleSubtract() { // [14 CHF] - [12 CHF] == [2 CHF]
Money expected= new Money(2, \
assertEquals(expected, f14CHF.subtract(f12CHF)); } }
二、编写ant文件自动运行java单元测试
之后,我们在sinky目录下,创建一个build.xml文件,完成它的编译和测试任务,这里我为build.xml文件加了注释,供大家参考:
之后,我们开始运行build文件,开始编译任务:打开cmd命令行,进入sincky文件夹下,执行ant命令,会看见类似下列内容的效果: C:cloversincky>ant Buildfile: build.xml compile: [mkdir] Created dir: C:cloversinckybuild [javac] Compiling 4 source files to C:cloversinckybuild BUILD SUCCESSFUL Total time: 4 seconds 现在你会在sincky目录下发现多了一个build目录,进入build目录,看见里边编译好的4个class文件,恭喜你,这个任务胜利完成! 下面我们来运行单元测试任务: C:cloversincky>ant test Buildfile: build.xml test: [java] ...................... [java] Time: 0.016 [java] OK (22 tests) BUILD SUCCESSFUL Total time: 1 second 可以通过结果看出,22个测试用例全部通过;junit里边测试通过是.表示,测试失败是.F表示。关于ant的命令帮助,你可以输入ant –h查看。 三、修改build.xml文件添加clover任务 现在我们开始修改build.xml文件,添加clover任务,以实现junit测试覆盖率的分析。首先,我们添加clover任务的配置任务;在build.xml文件里添加如下代码: 这两行定义了能够在ant文件里使用clover任务的配置工作。然后再添加一个clover任务,用来启动clover构建任务: 这里的initString定义了clover覆盖数据库的信息,它会在执行clover任务时自动创建,里边保存了源路径执行测试任务时候的全部信息,clover通过这个demo_coverage.db来创建覆盖率分析报告。如果这个demo_coverage.db存在,clover在每次运行时自动覆盖,如果不存在,clover自动创建它。 我们这里使用clover,是为了搜集junit测试时候的覆盖率信息,所以呢,junit测试过程中,我们需要使用clover.jar包,所以我们还需要把clover.jar文件作为junit运行的依赖库,因此