2

私は Automoq を使い始めています。私はこのようなことをしようとしていました:

mocker.GetMock<IMyObjectToTweak>();
var line = mocker.Resolve<IMyObjectToTweak>();

line.PropertyOne = .75;
line.PropertyTwo = 100;

MyCalc calc = new MyCalc();
calc.Multiply(line);
Assert.AreEqual(75, line.result);

これは実行されますが失敗します。プロパティが設定されません。Automoq のアイデアを見逃していますか? 優れたリソース/チュートリアルとは?

4

2 に答える 2

0

Sut (テスト中のシステム) で Result プロパティを公開することをお勧めします。

[TestClass]
public class SomeTest : ControllerTestBase
{
    [TestMethod]
    public void MethodNameOrSubject_ScenarioOrCondition_ExpectedBehaviourOrReturnValue()
    {
        var mock = _autoMoqContainer.GetMock<IMyObjectToTweak>();
        var line = _autoMoqContainer.Resolve<IMyObjectToTweak>();

        mock.Setup(x => x.PropertyOne).Returns(.75);
        mock.Setup(x => x.PropertyTwo).Returns(100);

        MyCalc calc = new MyCalc();
        calc.Multiply(line);
        Assert.AreEqual(75, calc.Result);
    }
}

public interface IMyObjectToTweak
{
    double PropertyOne { get; set; }
    int PropertyTwo { get; set; }

}

public class MyCalc
{
    public double Result { get; set; }

    public void Multiply(IMyObjectToTweak line)
    {
        Result =  line.PropertyOne*line.PropertyTwo;
    }
}

関連はありませんが、AutoMocking に関する私の投稿を読んで ください http://www.dotnetcurry.com/ShowArticle.aspx?ID=767

于 2013-06-05T04:11:16.750 に答える