当被测试的单元具有外部依赖性时,模拟是在单元测试中使用的一个过程。mock的目的是隔离并关注被测试的代码,而不是外部依赖的行为或状态。在模拟中,依赖项被模拟真实依赖项行为的严密控制替换对象所取代。替换对象主要有三种可能的类型——假的、存根的和模拟的。
假货:Fake是一个通过实现相同的接口而不与其他对象交互来替代实际代码的对象。通常Fake是硬编码来返回固定结果的。为了测试不同的用例,必须引入大量的fake。使用Fakes带来的问题是,当一个接口被修改时,所有实现该接口的fake也应该被修改。
存根:Stub是一个对象,它将根据一组特定的输入返回特定的结果,通常不会响应为测试编写的程序之外的任何内容。使用JustMock,您可以用最少的代码在测试中创建Stub,明确依赖将如何响应以及被测试系统应该如何行为。
模拟:Mock是Stub的一个更加复杂的版本。它仍然会像Stub一样返回值,但它也可以根据每个方法应该被调用的次数、顺序和使用的数据来进行编程。使用JustMock,只需一行代码就可以创建一个Mock,这使测试更容易理解。
要了解更多关于嘲讽和存根、赝品和嘲讽之间的区别的信息,请阅读赝品,存根和仿制品博客文章。
关于如何开始模仿的更多实际例子可以在第一次模仿博客文章。
JustMock附带了一个直观的API,具有更好的可发现性,易于学习和使用,并允许模拟隔离概念的自然表达。JustMock流畅接口促进了快速特性发现,并提供了仅对当前上下文有效的选项,从而提高了生产率、更好的代码、提高了产品质量和更快的交付。
JustMock集成了所有流行的测试框架,允许您专注于重要的内容,编写单元测试和提高产品质量。