我希望对象的某个方法在运行单元测试时始终返回某个值。例如。
在单元测试中我希望方法A返回“Bar”,但在所有其他情况下我想返回“Foo”。
我不认为Mocking会起作用,因为你需要提前提供对象参考(至少使用Moq)。有什么想法吗?
答案 0 :(得分:2)
如果可能,您应该将对象A作为依赖项传递给对象B.然后,您可以使用Moq模拟出依赖关系,并在调用方法A时返回Bar
。
如果A的对象创建是在B内部完成的,那么对象B对于这部分是不可测试的(因此你应该传入你的依赖关系)。
答案 1 :(得分:1)
模拟是用于此类场景的工具。大多数模拟框架将使您能够在不创建实例的情况下模拟对象A.例如,Microsoft的痣将使您能够实现您描述的方案。