2

私は単純なモッククラス longRunningLibrary を持っています。Returns from Moq というメソッドにテキスト ("This method...") を出力してもらいたいのですが、これはコードの次の部分で確認できます。

 _longRunningLibrary
   .Setup(lrl => lrl.RunForALongTime(30))
   .Returns("This method has been mocked!");

だから.. このテキストを resharper の Unit Test Sessions 部分に出力したいのですが、できません。どうやって進める ?

4

2 に答える 2

3

moqを使用すると、次のように実行できます。

[Test]
public void MoqSample()
{
    var mock = new Mock<ILongRunner>();
    mock.Setup(lr => lr.RunForALongTime(It.IsAny<int>()))
        .Returns("This method has been mocked!");
    ILongRunner longRunner = mock.Object;
    Console.WriteLine(longRunner.RunForALongTime(1));
    Assert.AreEqual("This method has been mocked!", longRunner.RunForALongTime(2));
    Assert.Pass(longRunner.RunForALongTime(3));
}

public interface ILongRunner
{
    string RunForALongTime(int i);
}

R# テストランナーを使用する場合は Console.WriteLine(...) を使用できますが、VS を使用する場合は不明です。

Assert.Pass(...) は Success: メッセージを出力します

于 2013-06-18T15:45:55.320 に答える
1

別のオプションは、コールバックを使用することです。

_longRunningLibrary
   .Setup(lrl => lrl.RunForALongTime(30))
   .Returns("This method has been mocked!")
   .Callback<int>( p => Console.WriteLine("Called with: {0}", p);
于 2013-06-19T14:04:20.507 に答える