平面设计网站有什么,泰州做网站软件,基于云平台网站群建设,确保网站地址没有做301跳转针对单元测试的定义#xff0c;主要有两种看法#xff1a;经典学派。经典学派之所以经典#xff0c;是因为这原本就是人们做单元测试和测试驱动开发的方式伦敦学派。伦敦学派扎根于伦敦的编程社区。单元测试的定义单元测试有很多定义#xff0c;但是所有的定义都有三个重要… 针对单元测试的定义主要有两种看法经典学派。经典学派之所以经典是因为这原本就是人们做单元测试和测试驱动开发的方式伦敦学派。伦敦学派扎根于伦敦的编程社区。 单元测试的定义单元测试有很多定义但是所有的定义都有三个重要的属性。单元测试是一个自动化测试并且验证一小段代码或者叫一个单元执行速度快使用隔离的方式进行 而隔离的方式是经典学派和伦敦学派的根本区别所在。我个人使用经典的方式 隔离问题伦敦学派的做法以隔离的方式验证一段代码一个单元意味着什么伦敦学派把它描述成将被测试系统SUTSystem Under Test与它的协作者隔离开来。也就是说如果一个 class 有依赖项或依赖其它的class需要把这些依赖项都使用测试替身test double来替换掉。测试替身test double是一个外观和行为都与其对应的正式版本类似的对象但它是一个简化版它降低了复杂性并有助于测试。 使用测试替身替换依赖项如下图这样做的好处有如果测试失败出问题的代码肯定是 SUT被测试系统。其它地方不会出现嫌疑因为其邻居都被测试替身替换掉了。它能够拆分对象图也就是沟通的类之间组成的网络。你可以把被测试类的直接依赖项替换掉这样就不需要再处理依赖项的依赖项了从而大大减少单元测试的准备工作。还有一个小的优点它允许你引入项目范围内的指南一次只测试一个类。这样的话就无需考虑代码覆盖率的问题了因为如果建立一个类那么就创建它对应的一个测试类。如下图 如何创建测试替身首先看经典学派如何做单元测试这里面 Customer 是被测试系统 SUT而 Store 是它的协作者。在经典学派里不使用测试替身替代依赖项。 针对同一个类伦敦学派是这样做单元测试的这里我使用了Moqhttps://github.com/moq/moq4框架。具体的说我是用mock 这种东西替代了 Store。而 mock 是测试替身的一种现在知道这么多就行。这里面 MockIStore 就是 Store 的简化版在传入特定参数时HasEnoughInventory 方法会被指定返回 true 或 false。此外也可以得到 RemoveInventory 被调用的次数并将其用于验证。