什么是模拟测试..如何进行模拟测试..如何创建模拟..何时使用
答案 0 :(得分:6)
Mocks基本上允许您使用“假”实例替换类的具体实现,以模拟您要测试的特定方案。
例如,假设您有ClassA.DoSomething()方法,该方法接受ClassB实例作为参数并使用它来完成一些工作。您可能希望测试在ClassA.DoSomething()中使用ClassB时在特定方案中发生的情况(例如,调用ClassB.HelperMethod()时会发生什么,并返回null)。
您可以提供ClassB的“模拟”(假)实例,并告诉它如何从您的测试中表现出来。例如,您可以告诉它期望调用“HelperMethod”并返回该调用的空值。
模拟对于允许您在不依赖外部依赖性的情况下测试单个单元非常有用。通过模拟外部组件,您可以从测试中删除对它的依赖性,这意味着您将单元测试集中在离散组件上,而不是进行集成测试,以测试两个组件之间的集成。一个很好的例子是一个类,它使用数据访问层从数据库中检索数据,然后对数据进行一些操作。您可以模拟数据访问层,以防止实际需要转到数据库。因此,您可以专注于测试类的工作方式,而不是必须专注于使用所有必需的测试数据设置数据库并测试与数据库的集成。这样做还有加快测试速度的好处。