模拟用于验证测试对象正在调用依赖对象上的哪些方法。
例如,如果您想验证与 API 或数据库的交互,则可以使用模拟来测试是否使用正确的参数调用了正确的方法。
使用模拟对于测试复杂系统特别有用,因为它允许您准确地验证内部逻辑而不依赖于外部系统的行为。
模拟的一个特定用例是确 阿尔巴尼亚电话 保正确进行 API 调用或跟踪是否调用了特定方法。
当你想详细检查被测试代码的功能时,模拟非常有用。
它还验证所调用的方法是否按预期运行,从而进行更准确的测试。
存根的具体用例:简化行为的重要性
存根是一个 TestDouble,它返回对被测代码对依赖对象进行的方法调用的预定响应。
存根的主要特性在于简化依赖对象的行为,使得验证被测代码的行为变得更容易。
存根允许您快速运行简单测试,而无需复制外部系统的复杂行为。
例如,在测试需要数据库连接的方法时,可以使用存根返回固定数据,而不是连接并操作实际的数据库。
由于测试失败因素不依赖于外部系统,因此这提高了测试速度并确保了稳定的测试结果。
当依赖对象的实现尚未完成或外部系统的可用性有限时,存根也很有用。
假货的作用和用途:模拟真实数据
伪造的 TestDouble 模仿了依赖项的简化版本,提供了行为类似于真实代码但行为与代码本身类似的优化实现。
通过模仿真实的数据和行为,模拟可以让您在接近真实测试环境的条件下进行测试,即使在难以准备完整系统的情况下也是如此。
例如,您可以创建一个虚假的数据库并使用简单的内存数据库来模拟操作数据。
当外部系统非常复杂并且您只想 我们的客户目标是谁 重现其部分行为时,伪造很有用。
另一个优点是,虚假系统的行为更像真实系统,从而可以创建更真实的测试场景。
例如,如果外部 API 仍在开发中,您可以使用伪造品来模拟 API 的行为以进行进一步测试。
通过这种方式,fake增加了测试的真实度,使得测试更加类似于系统的生产环境。
Spy 的特点以及何时使用它:了解内部情况的重要性
间谍是一个监视方法调用的 TestDouble,就像模拟一样,只是间谍调用的是真正的方法。
模拟会模拟方法本身的行为,而间谍会执行实际方法,同时记录被调用方法的结果和参数。
这使得您可以使用间谍来跟踪方法的调用堆栈并验证其结果是否正确。
当您需要检查内部逻辑时,间谍很有用。
例如,当您希望多次调用某个方法,或者跟踪某个方法是否已使用特定参数调用。
这使您可以检查未暴露给外部的内部方法的行为,也适合测试执行复杂处理的代码。
此外,由于调用了实际方法,测试结果更加可靠。
虚拟器及其用例:只是一个数据占位符
Dummy 是最简单的 TestDouble,仅用于在测试期间提供必要的数据。
虚拟器本身没有方法,并且作为依赖项几乎没有功能,但在测试代码需要时用作参数或参数。
例如,当某个方法需要一个对象,但是该对象的行为并不重要时,就会使用虚拟对象。
虚拟用例是当您只想实例化依赖对象,但不需要任何实际行为时。
这简化了您的测试代码并消除了不必要的代码。
当您不需要处理复杂的依 在短信中 赖关系时,Dummies 很有用,并且可以帮助简化您的测试设置。
当只有其作为方法参数的存在才重要并且依赖对象不是测试的重点时也会使用它。
发表回复