单元测试 – 我应该在单元测试时模拟所有依赖项吗?
发布时间:2020-12-13 20:09:14 所属栏目:百科 来源:网络整理
导读:我的班级有依赖,我在单元测试中嘲笑.我在一个对我来说没什么意义的地方得到了一个空引用异常. 我刚才意识到这是因为我没有设置我的模拟依赖.此依赖项已经过测试,但它不会连接到文件系统或数据源之类的任何内容. 我只想在这个新类中测试我的新代码,但我想在这
我的班级有依赖,我在单元测试中嘲笑.我在一个对我来说没什么意义的地方得到了一个空引用异常.
我刚才意识到这是因为我没有设置我的模拟依赖.此依赖项已经过测试,但它不会连接到文件系统或数据源之类的任何内容. 我只想在这个新类中测试我的新代码,但我想在这种情况下最好不要模拟. 这个结论是否正确?
正确.你应该模仿依赖于任何持久性或外部性的东西,以防止测试依赖于任何持久性或外部性.
如果依赖性不依赖于任何持久性或外部性,那么通过模拟它获得的唯一好处是即使依赖性错误,测试也能正常工作 – 但这假设模拟正常工作.为此你需要: >编写一个完全模拟依赖关系的模拟. 第一个选择是彻头彻尾的荒谬 – 为什么你的模拟比原来的依赖更好?毕竟,可以安全地假设在原始依赖项上投入了比在模拟中更多的努力…… 第二个选项意味着您的mock知道实现的确切细节 – 否则您将不知道实现如何使用依赖项,因此您不知道如何模拟这些特定用途.这意味着测试不能用于单元测试的主要目的之一 – 在更改实现后验证代码是否正常工作. 模拟的缺点是太大而且优点太小 – 特别是考虑到你总是可以运行依赖项的测试来检查它是否正常工作…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |