Я использую MockingContainer<T>
для автоматической настройки моих зависимостей.Как я могу утверждать, что свойство на одной из этих зависимостей установлено?
[SetUp]
public void SetUp()
{
//arrange
_baseUrl = "http://baseUrl";
_container = new MockingContainer<ApiInteractionService>();
_container.Arrange<IConfigService>(m => m.BaseUrl).Returns(_baseUrl);
_uut = _container.Instance;
}
Следующее не удается с 0 вызовами, что имеет смысл, так как я считаю, что он смотрит на Getter, а не Setter.Итак, как я могу утверждать, что Сеттер был вызван тестируемым устройством?
[Test]
public void BaseUrlSet()
{
//act
var _ = _uut.MakeRequest((InitialRequest) Arg.AnyObject);
//assert
_container.Assert<IRestService>(m => m.BaseUrl, Occurs.Once());
}
Согласно документации (расположенной по адресу JustMock Docs для тех, кто не знаком, но хочет попробоватьОказывается, мне следует использовать Mock.ArrangeSet(lambda)
, однако я не могу понять, как заставить этот синтаксис работать в отношении MockingContainer<T>
.
Если хуже становится хуже, я просто НЕ могу использовать MockingContainer<T>
, но я бы предпочел не проводить рефакторинг моего набора тестов только для того, чтобы приспособить один конкретный модульный тест.
Не то, чтобы это действительно относилось к вопросу, но в случае, если это кому-то нужно, вот заглушка ApiInteractionService
public ApiInteractionService(IRestService restService, IConfigService configService)
{
_restService = restService;
_restService.BaseUrl = configService.BaseUrl;
}
public string MakeRequest(InitialRequest initialRequest)
{
return _restService.Post(initialRequest);
}