|
|
1
2
不要嘲笑
相反,引入一个“DataService”接口,并在的测试中对其进行模拟
然后,您可以测试
如果您可以使用“InMemory”数据库(EF Core或Sqlite)进行测试,那就更好了->为编写测试
在测试中,您应该只模拟外部资源(web服务、文件系统或数据库),或者只模拟使测试变慢的资源。 在重构代码库时,不模仿其他依赖项将节省您的时间并提供自由。 更新后:
根据更新的问题,其中
下面的示例是
在测试中,您将为
然后,您将对以下各项进行测试:
对于最后一个测试用例,您将模拟
|
|
2
1
为了使模拟返回数据,需要将is设置为在给定输入的情况下按预期运行。 当前在测试的方法中,它被如下调用
然而,在测试中,模拟上下文的设置如下
请注意,mock被告知期望参数是什么。 只有在提供这些参数时,模拟才会按预期运行。否则将返回null。 考虑以下示例,说明如何根据原始问题中提供的代码执行测试。
这就是说,当前被测系统的设计与静态依赖关系紧密耦合,这种依赖关系是一种代码气味,使得当前的设计遵循一些不好的做法。
静态
并显式注入依赖类,而不是调用静态工厂方法
这将允许在中创建一个适当的模拟,并将其注入到被测对象中,而无需使用静态解决方法。
|
|
|
wavesinaroom · 断言结构向量长度 1 年前 |
|
|
Tim Kirkwood · 比较空数据帧 1 年前 |
|
Kamran Khan · 使用单元测试ASP。NET核心 1 年前 |
|
|
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 1 年前 |
|
|
Ricky Mo · 角度测试如何模拟导入的const 1 年前 |
|
|
Natty · Visual Studio中缺少“代码覆盖率结果” 1 年前 |