1

を使用しMockingContainer<T>て、依存関係を自動的に設定しています。これらの依存関係の 1 つのプロパティが設定されることをアサートするにはどうすればよいですか?

[SetUp]
public void SetUp()
{
    //arrange
    _baseUrl = "http://baseUrl";
    _container = new MockingContainer<ApiInteractionService>();
    _container.Arrange<IConfigService>(m => m.BaseUrl).Returns(_baseUrl);
    _uut = _container.Instance;
}

以下は 0 回の呼び出しで失敗します。これは、Setter ではなく Getter を見ていると思われるため、理にかなっています。では、Setter がテスト対象のユニットによって呼び出されたと断言するにはどうすればよいでしょうか。

[Test]
public void BaseUrlSet()
{
    //act
    var _ = _uut.MakeRequest((InitialRequest) Arg.AnyObject);

    //assert     
    _container.Assert<IRestService>(m => m.BaseUrl, Occurs.Once());
}

ドキュメント(よく知らないが支援を試みたい人のためのJustMock DocsMock.ArrangeSet(lambda)にあります)によると、 を使用する必要があるように見えますが、その構文をMockingContainer<T>.

さらに悪いことに、私は を使用できませんがMockingContainer<T>、1 つの特定の単体テストに対応するためだけにテスト スイートをリファクタリングする必要はありません。


質問に本当に関連しているわけではありませんが、万が一誰かがそれを必要とする場合に備えて、ここにのスタブがありますApiInteractionService

public ApiInteractionService(IRestService restService, IConfigService configService)
{
    _restService = restService;
    _restService.BaseUrl = configService.BaseUrl;
}

public string MakeRequest(InitialRequest initialRequest)
{
    return _restService.Post(initialRequest);
}
4

1 に答える 1