我有以下代码剪切,我尝试使用typemock测试它,但得到了InvalidCast异常。 ISomeClass只是一个接口,SomeClass实现了该接口。 UseOfSomeClass是另一个使用SomeClass的类,其构造函数将SomeClass作为参数。我需要测试UseOfSomeClass。如何将类型模拟假对象注入类构造函数?
public interface ISomeClass
{
void DoSomething();
}
public class SomeClass : ISomeClass
{
public void DoSomething()
{
Console.WriteLine("Do something!");
}
}
public class UseOfSomeClass
{
public SomeClass SomeClassProperty { get; set; }
public bool IsChecked { get; set; }
public UseOfSomeClass(SomeClass someClass)
{
SomeClassProperty = someClass;
}
public void MyMethod()
{
SomeClassProperty.DoSomething();
IsChecked = true;
}
}
然后测试:
[TestClass]
public class UseOfSomeClassTest
{
[TestMethod]
public void TestMethod1()
{
var fakeSomeClass = Isolate.Fake.Instance<ISomeClass>();
var use = new UseOfSomeClass((SomeClass)fakeSomeClass);
use.MyMethod();
Assert.IsTrue(use.IsChecked);
}
}
谢谢!
答案 0 :(得分:0)
Typemock Isolator允许您模拟具体的类,因此在您的测试用例中不需要伪造ISomeClass。您可以伪造SomeClass并将其作为参数发送给ctor。
$ strace ssh -o PreferredAuthentications=password 127.0.0.1
[...]
open("/dev/tty", O_RDWR) = 4
close(4) = 0
open("/dev/tty", O_RDWR) = 4
[...]
write(4, "root@127.0.0.1's password: ", 27) = 27
root@127.0.0.1's password:
read(4,