1
2
你需要能够测试它的作用。例如,您的过程是否向集合添加了一些内容?设置属性?创建文件? 不管它是什么,假设变化是可见的 以某种方式 . 你只需要弄清楚如何检查这种效果。当然,说起来容易做起来难,这就是为什么功能性方法在合适的时候更容易测试的原因:)特别是修改外部资源(文件系统、数据库等)的效果和 依赖 对于外部资源(同上),要比那些只以相当“本地”的方式改变事物的资源更难测试。 |
2
1
在某些情况下,过程所做的就是调用其他依赖项上的方法。在这种情况下,如果您使用依赖项注入方法,那么可以传入这些依赖项的模拟,并使用断言或期望来确保使用正确的参数对依赖项调用正确的方法。 |
3
1
对于过程,“做些什么”通常涉及API调用或其他对象操作。 例如,过程可以将行写入文件。它使用文件I/O API调用(或文件IO对象)来执行“写一行”操作。 您要做的是创建“模拟”对象来代表文件。模拟对象只有足够的功能来收集测试结果并使它们对断言可见。不要覆盖你的模拟对象,这是一个浪费时间的老鼠洞。 在python中,我们做类似的事情。
现在我们可以将这个模拟文件提供给我们的过程,而不是真正的文件。我们可以对发生的事情作出断言。
|
4
0
有许多不同的情况: 案例1:
案例2: 当方法依赖于另一个对象而不是执行属于同一类的成员时。在这种情况下,我建议使用模拟框架。我个人使用犀牛模型。您可以通过此链接查看 Rhino.Mocks examples . |
mg610 · 如何开始C++单元测试 2 年前 |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
shilin agre · 在Python中测试修饰函数 2 年前 |
SlipScout · Unittest只传递单个值,而不是获取多个值 2 年前 |
Alex · 从实际对象的实例返回默认模拟结果 2 年前 |