Fake - Fake 是一个通用术语,可用于描述 stub或 mock 对象。 它是 stub 照旧 mock 取决于使用它的上下文。 也就是说,Fake 可以是 stub 或 mock
Mock - Mock 对象是系统中的 fake 对象,用于确定单位测试是否通过。 Mock 起初为 Fake,直到对其断言。
Stub - Stub 是系统中现有依赖项的可控制替代项。 通过使用 Stub,可以在无需使用依赖项的情况下直接测试代码。
参考 单位测试最佳做法 让我们使用相同的术语区别点:
在某些情况下两者可能看起来相似,但在测试的目的和用途上照旧存在一些区别。在编写单位测试时,根据测试场景和需求选择合适的 stub 或 mock对象可以帮助提高测试的准确性和可靠性。创建实战项目
到现在为止 仓储层的简单实现已经完成了,接下来完成 WebApi 层Sample.Api
到这儿我们的项目已经创建完成了本系列背面的章节根本上都会以这个项目为基础展开辟展控制器的单位测试
[单位测试涉及通过基础结构和依赖项单独测试应用的一部门。 单位测试控制器逻辑时,仅测试单个操作的内容,不测试其依赖项或框架自身的行为。本章节重要以控制器的单位测试来带大家了解一下Stup和Moq的核心区别。
用 Stub 来替代真实的依赖项,以便更好地控制测试情况和测试结果Mock
在测试过程中,尤其是TDD的开发过程中,测试用例有限开发在这个时候,我们总是要去模仿对象的创建,这些对象可能是某个接口的实现也可能是详细的某个对象,这时候就必须去写接口的实现,这时候模仿对象Mock的用处就体现出来了,在社区中也有很多模仿对象的库如Moq,FakeItEasy等。
Moq 是一个简单、直观且强大的.NET 模仿库,用于在单位测试中模仿对象和行为。通过 Moq,您可以轻松地设置依赖项的行为,并验证代码的调用。我们用上面的实例来演示一下Moq的核心用法
通过我们上面这个简单的 Demo 简单的了解了一下 Moq 的使用,接下来我们对 Moq 和核心功能深入了解一下通过安装的Nuget包可以看到, Moq依赖了Castle.Core这个包,Moq正是使用了 Castle 来实现动态署理模仿对象的功能。
使用 Moq 的 Callback 方法可以捕捉方法调用时的参数,允许我们在测试中访问和处置处罚这些参数。通过在 Setup 方法中指定 Callback 操作,我们可以捕捉方法调用时传入的参数,并在回调中实行自定义逻辑,比方将参数添加到列表中。这种方法可以帮助我们验证方法在不同参数下的行为,以及检查方法是否被精确调用和传递参数。总的来说,Callback 方法为我们提供了一种灵活的方式来处置处罚方法调用时的参数,帮助我们编写更全面的单位测试。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |