|
|
1
2
不要嘲笑
相反,引入一个“DataService”接口,并在的测试中对其进行模拟
然后,您可以测试
如果您可以使用“InMemory”数据库(EF Core或Sqlite)进行测试,那就更好了->为编写测试
在测试中,您应该只模拟外部资源(web服务、文件系统或数据库),或者只模拟使测试变慢的资源。 在重构代码库时,不模仿其他依赖项将节省您的时间并提供自由。 更新后:
根据更新的问题,其中
下面的示例是
在测试中,您将为
然后,您将对以下各项进行测试:
对于最后一个测试用例,您将模拟
|
|
2
1
为了使模拟返回数据,需要将is设置为在给定输入的情况下按预期运行。 当前在测试的方法中,它被如下调用
然而,在测试中,模拟上下文的设置如下
请注意,mock被告知期望参数是什么。 只有在提供这些参数时,模拟才会按预期运行。否则将返回null。 考虑以下示例,说明如何根据原始问题中提供的代码执行测试。
这就是说,当前被测系统的设计与静态依赖关系紧密耦合,这种依赖关系是一种代码气味,使得当前的设计遵循一些不好的做法。
静态
并显式注入依赖类,而不是调用静态工厂方法
这将允许在中创建一个适当的模拟,并将其注入到被测对象中,而无需使用静态解决方法。
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |