TDD in .NET Core - 简介 (2)

TDD in .NET Core - 简介

 

这个测试项目需要引用Console项目。

 

需求

有这样一份报表:

TDD in .NET Core - 简介

 

现在想要做成支持多币种的:

TDD in .NET Core - 简介

 

这里还提供了汇率:

TDD in .NET Core - 简介

 

目标就是产生第二张图那样的报表。

 

开始操作

我们需要做哪些工作?

让两种币种的钱数可以进行加法操作,并通过给定的汇率算出结果。

让股票单价可以乘以股票数并得出总额。

上面是一个待办问题列表(To-Do List)。我们就关注于这个待办列表即可。

列表里的问题应该是逐个解决的,解决完一个划掉一个;如果有新问题,就在后边加上一条。

 

编写测试

下面我们开始,先不建立对象,先写测试

TDD in .NET Core - 简介

 让编译通过

这里有很多问题,编译也无法通过,这些问题我们也是一个一个来解决。

1. 首先,没有Dollar这个类,那就建立Dollar这个类:

TDD in .NET Core - 简介

第一个问题解决了。

 

2. 没有相应的构造函数,那就建立构造函数:

TDD in .NET Core - 简介

又解决了一个问题!

 

3. 没有Times()这个方法,那就建立该方法:

TDD in .NET Core - 简介

又解决了一个问题!

 

4. 没有Amount属性,建立该属性:

TDD in .NET Core - 简介

编译问题都解决了!!

 

看一下测试方法:

TDD in .NET Core - 简介

编译错误肯定是没有了。

 

测试Fail

然后跑测试:

TDD in .NET Core - 简介

不出意料肯定会Fail。

 

让测试通过

现在有了具体的这个Fail的测试,我们现在的任务就是让该测试变成Pass,而不是实现多币种报表,先让这个测试通过,再慢慢让其它测试通过。

您可能不喜欢这样,但是现在的目标不是做出完美的解决方案,目标就是让这个测试通过,所以这时候代码可能很烂:

TDD in .NET Core - 简介

我写死了数字10。

然后再跑测试:

TDD in .NET Core - 简介

测试Pass了!!

 

重构,移除重复

别着急,周期还没结束。

现在,我们需要移除重复。但是重复在哪?

通常你看到的重复是指代码的重复,这里是指测试中的数据和代码中数据的重复。

TDD in .NET Core - 简介

这个10是哪来的? 它实际上是:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyddfw.html