1

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);
4

1 に答える 1

4

私の名前はNofarで、Typemockのサポートチームの出身です。

WillReturn APIを使用すると、willReturn句を記述したときと同じ「x」値が得られます。したがって、このフレーズの後で値を変更することは関係ありません。

この場合、次のようにDoInsteadAPIを使用できます。

    [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);
    }
}

あなたがテストしようとしているのは何ですか?

よろしく、

ノーファー

タイプモックサポート

ユニットテスト会社

于 2012-12-25T13:01:09.443 に答える