gpt4 book ai didi

unit-testing - 在单元测试中使用模拟时如何避免重复代码

转载 作者:行者123 更新时间:2023-12-04 05:06:57 25 4
gpt4 key购买 nike

我正在使用依赖注入(inject)为我正在测试的类之外的代码提供模拟。我发现自己一遍又一遍地编写了很多相同的代码,因为我需要模拟在我想要测试的方法中使用的 AuthProvider、ConfigurationManager 等。该方法包含分支(if-then-else),因此我有多个测试来测试该方法的所有执行路径。我多次实例化每个模拟(在每种测试方法中一次),但我想知道这是否是错误的方法?
此外,我对模拟和预设响应提出了期望,这些响应显然主要是复制粘贴,因为在每个方法中都会调用诸如 AuthProvider.Authenticate() 之类的调用

在每种方法中,我都设置了一个模拟存储库,并在每种方法结束时验证了模拟存储库。我是否应该有某种工厂来创建这些模拟以及设置它们的期望和返回值,如果是这样,如何?

为了实现模拟,我正在使用 RhinoMocks。

最佳答案

“多次实例化每个模拟”不是问题。对象是免费的。

请确保您没有多次定义模拟类。上课很贵。

此外,您在 TestCase 中有一个“setUp”方法,它允许您创建一个可供所有测试使用的夹具。是的,它为每个测试重建。不,这不是问题,除非它非常缓慢。

关于unit-testing - 在单元测试中使用模拟时如何避免重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/417166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com