こんにちは、moq フレームワークについて学習しようとしていますが、単純な概念を理解できていないようです。テストしているコードは次のとおりです。
public interface ILongRunningLibrary {
string RunForALongTime(int interval);
}
public class LongRunningLibrary : ILongRunningLibrary {
public string RunForALongTime(int interval) {
var timeToWait = interval * 1000;
Thread.Sleep(timeToWait);
return string.Format("Waited {0} seconds ", interval);
}
}
そして、ここに私のテストがあります:
private Mock<ILongRunningLibrary> _longRunningLibrary;
[SetUp]
public void SetupForTest() {
_longRunningLibrary = new Mock<ILongRunningLibrary>();
}
[Test]
public void TestLongRunningLibrary() {
const int interval = 30;
_longRunningLibrary.Setup(lrl => lrl.RunForALongTime(30))
.Returns("This method has been mocked!");
var result = _longRunningLibrary.Object.RunForALongTime(interval);
Debug.WriteLine("Return from method was '{0}'", result);
}
私が読んでいる本から私が理解したことから、このメソッドは NUnit コンソールで「このメソッドはモックされています」を返す必要があるということです。しかし、私の場合、テストはパスし、何も返されません。
削除しても:
_longRunningLibrary.Setup(lrl => lrl.RunForALongTime(30))
.Returns("This method has been mocked!");
テストは引き続き成功し、コンソールには何も出力されません。
NUnit コンソールで「このメソッドはモックされています」が返されないのはなぜですか?