使用 Moq 测试.NET Core - Why Moq? (2)

使用 Moq 测试.NET Core - Why Moq?

TransferResult, 转会审批结果枚举:

使用 Moq 测试.NET Core - Why Moq?

 

还有TransferApproval, 转会审批类:

使用 Moq 测试.NET Core - Why Moq?

'

当前的逻辑是, 发起球员转会申请后, 进行审批: 如果总费用大于预算, 那么就直接拒绝; 如果总费用不超标, 并且球员小于30岁, 那么就批准; 但如果球员大于30岁, 并且是超级巨星的话, 这将由老板决定.

 

建立单元测试项目

在解决方案里建立一个xUnit类型的项目:

使用 Moq 测试.NET Core - Why Moq?

 

然后要保证该项目所用到的库都保持最新:

使用 Moq 测试.NET Core - Why Moq?

 

最后别忘了添加对FootballManager项目的引用:

使用 Moq 测试.NET Core - Why Moq?

 

打开Text Explorer, 可以看到里面有一个待测的单元测试:

使用 Moq 测试.NET Core - Why Moq?

 

做一个简单的单元测试

把UnitTest1改成下面这个简单的单元测试:

使用 Moq 测试.NET Core - Why Moq?

重新Build后, 可以看到单元测试的名称更新了.

 

点击Run All, 运行单元测试, 结果成功:

使用 Moq 测试.NET Core - Why Moq?

 

随后再添加一个简单的单元测试:

使用 Moq 测试.NET Core - Why Moq?

 

Build, 后就会出现这个测试:

使用 Moq 测试.NET Core - Why Moq?

 

Run All, 测试也会成功:

使用 Moq 测试.NET Core - Why Moq?

 

添加依赖

这时, 有一些需求的变化, 球员转会审批前, 需要通过体检.

首先在转会申请类里面添加两个球员的属性:

使用 Moq 测试.NET Core - Why Moq?

 

然后添加一个体检的接口:

使用 Moq 测试.NET Core - Why Moq?

这两个方法的作用是一样的, 但是调用方法略有不同.

 

但是此时, 该接口的实现类还没有开发完毕:

使用 Moq 测试.NET Core - Why Moq?

 

在转会审批类里面, 需要添加这个依赖, 使用的是接口:

使用 Moq 测试.NET Core - Why Moq?

 

在单元测试类里面, 我为转会球员添加了这两个属性, 但是审批类会报错, 因为没有加入依赖项:

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

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