我尝试了一些单元测试并遇到了使用类实例而不是接口的测试方法的问题。在那种情况下,我发现 MS Moles 可以帮助我。但似乎他们对类型转换情况并不友好。我没有找到任何信息,甚至没有发现如何处理这种情况的问题。例子:
public class ClassA
{
public int Number {get {return 10;}}
}
public class ClassB
{
public int Count1(ClassA arg) { return arg.Number; }
public int Count2(object arg) { return (arg as ClassA).Number; }
}
并且在测试时
var cl = new MolesUnitTesting.Moles.MClassA();
MolesUnitTesting.Moles.MClassA.AllInstances.NumberGet = t1 => 20;
第一个Count
工作正常并返回 20 但在第二个返回中进行转换Null
。有没有办法在不使用接口和通常的模拟的情况下测试这种方法?如果有其他库可以帮助我,请提供它的名称。