0

単体テストに moq を使用することから始めました。私がやりたいのはこれだけです: クラス A の "Execute" メソッドをテストします。メソッドは IA タイプのオブジェクトを受け入れ、それに単純なプロパティを設定します。

[TestFixture]
public class A
{
    public void Execute(object s)
    {
        if (s is IA)
        {
            (s as IA).ASimpleStringProperty = "MocktestValue";
        }
    }
}

public interface IA
{
    string ASimpleStringProperty { get; set; }
}

単体テストを次のように書きました。

しかし、これは以下の私のテスト方法ではうまくいきません: 私が間違っているアイデアはありますか?

[Test]
public void TestMethod1()
{
    var person = new Mock<IA>();
    var a = new A();
    a.Execute(person.Object);
    person.VerifySet(ASimpleStringProperty = "MockytestValue", "FailedTest");
}

(ASimpleStringProperty が "Mocktestvalue" であるかどうかを確認したいのですが、何らかの理由でできませんでした。また、デバッグを行うと、ASimpleStringProperty が null であることがわかります!

4

1 に答える 1

2

MockytestValueの代わりにプロパティに割り当てる値にタイプミスがありますMocktestValueVerifySetプロパティが設定されているかどうかを確認するためにも使用します。

person.VerifySet(ia => ia.ASimpleStringProperty = "MocktestValue", "FailedTest");

ところで、なぜあなたのAクラスは とマークされたのTestFixtureですか?

于 2013-07-18T11:40:19.267 に答える