1

在 TypeMock 中,您可以创建未来的模拟对象,例如:

public class ClassToTest
{   
    public ClassToTest()
    {
        var o = new Foo();
    }
}

[Test]
public void Test()
{
    var fakeFoo = Isolate.Fake.Instance<Foo>();

    Isolate.Swap.NextInstance<Foo>().With(fakeFoo);
}

MS Fakes 是否具有与上述相同的功能?

4

1 回答 1

1

从这个 SO question中找到了一个很好的例子,它演示了如何伪造未来的对象实例。这是该问题的一个示例:

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
        ClassLibrary1.Child myChild = new ClassLibrary1.Child();

        using (ShimsContext.Create())
        {
            ClassLibrary1.Fakes.ShimChild.AllInstances.addressGet = (instance) => "foo";
            ClassLibrary1.Fakes.ShimParent.AllInstances.NameGet = (instance) => "bar";

            Assert.AreEqual("foo", myChild.address);
            Assert.AreEqual("bar", myChild.Name);
        }

    }
}

这看起来对我有用。

于 2013-12-03T08:21:18.967 回答