Kyl*_*man 9 .net c# unit-testing moq
我上课了
public interface IMyInterface 
{
    string MethodA();
    void MethodB();
}
public class MyClass : IMyInterface
{
    public string MethodA()
    {
        // Do something important
    }
    public void MethodB()
    {
        string value = MethodA();
        // Do something important
    }
}
我想对单元测试方法B进行单元测试,但是在考虑使用Moq MethodA时我无法思考如何模拟MethodB.Moq嘲笑界面,而不是类,所以我不能只是打电话mock.Object.MethodB(),对吧?
这可能吗?如果是这样,怎么样?
我认为这是不可能的。即使有可能我也不想这样做。
您正在测试 的行为MyClass,它碰巧实现的事实与IMyInterface
MethodA 和 MethodB 的测试行为有些无关。如果需要,您可以进行单独的测试,以确保该类实现您期望它实现的接口。MyClass.MethodB 的测试应该在 MyClass 的实例上完成,而不是在半模拟对象上完成。
如果您认为 MethodA 的行为是依赖项,您可以尝试实际从类中显式提取它。它将允许测试 MethodA (它将简单地委托给依赖项)和 MethodB (它将使用依赖项并执行更多操作)。
| 归档时间: | 
 | 
| 查看次数: | 1349 次 | 
| 最近记录: |