Typemock Isolator - 如何模拟返回非硬编码值的属性

时间:2012-12-24 04:43:02

标签: typemock typemock-isolator

在Isolator中是否可以为(只读)属性返回非硬编码值?

如果没有使用具有所需行为明确定义的属性的具体类的新实例交换伪造对象,这似乎是不可能的(那么可能需要引用测试方法来访问所需的行为)数据)?

    public class MyClass
    {
        public int Number { get; private set; }
    }

    [Test]
    public void TestPropertyGetter_ReturningNonHardCodedValuesIsolator()
    {
        var fake = new MyClass();
        var x = 0;
        Isolate.WhenCalled(() => fake.Number).WillReturn(x);
        x++;

        Assert.AreEqual(1, fake.Number);
    }

理想情况下,我正在寻找一个相当于MOQ语法的简单1个班轮..

    fake.SetupGet(x => x.Number).Returns(() => x);

1 个答案:

答案 0 :(得分:4)

我的名字是Nofar,我来自Typemock的支持团队。

当您使用WillReturn API时,您将获得与编写willReturn短语时相同的“x”值。因此,在此短语之后更改它的值是不相关的。

对于这种情况,您可以使用DoInstead API,如下所示:

    [TestMethod]
    public void TestPropertyGetter_ReturningNonHardCodedValuesIsolator()
    {
        var fake = new MyClass();
        var x = 0;
        Isolate.WhenCalled(() => fake.Number).DoInstead(y =>
                                                            {
                                                                return x;
                                                            });
        x++;

        Assert.AreEqual(1, fake.Number);
    }
}

我想问一下你要测试的是什么?

此致

Nofar

Typemock支持

单位测试公司