私はmoqを使用して、擬似インタフェースのメソッドに渡されるパラメータを検証するのに苦労しています。問題は、ラムダexpresion内(以前に設定した)configurationMockのすべてのプロパティがnullで、「It.Is」のために生成したことであるmoqとパラメータの一致
MockRepository mockRepository = new MockRepository(MockBehavior.Default);
Mock<IConfigurationUpdater> workerInstanceMock = mockRepository.Create<IConfigurationUpdater>();
Mock<IConfiguration> configurationMock = mockRepository.Create<IConfiguration>();
configurationMock.Setup(t => t.Folder).Returns("Folder");
configurationMock.Setup(t => t.FileName).Returns("FileName");
workerInstanceMock
.Setup(
x => x.DoSomeWork(
It.Is<string>(
t => t == Path.Combine(configurationMock.Object.Folder, configurationMock.Object.FileName))))
.Verifiable("DoSomeWork not properly called");
mockRepository.VerifyAll();
:私のようなコードを持っています。 (もし私が "Path.Combine"を文字列にすると、それはうまくいく)。 この正確なケースでは、「Path.Combine」はnullパラメータを受け取ったため失敗しています。
mockを適切に使用し、正しいパラメータでインターフェイスが呼び出されたことを確認する方法を教えてください。
おかげで、 フローリン
Pathのみを使用します.Combineは、別のコンテキストでlamba式を実行するように見えるので、この動作を取得します。 "It.Is(t => t == savConfigurationMock.Object.LiveUpdateFolder +" \\ "+ savConfigurationMock.Object.LiveUpdateMergeConfigFile)"を使用するか、プロパティに入れることでファイルのみが動作します。 –
florin