我正在使用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。那么如何断言 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>
,但我宁愿不必为了适应一个特定的单元测试而重构我的测试套件。
并不是说它与问题真正相关,但如果有人需要它,这里有一个存根ApiInteractionService
public ApiInteractionService(IRestService restService, IConfigService configService)
{
_restService = restService;
_restService.BaseUrl = configService.BaseUrl;
}
public string MakeRequest(InitialRequest initialRequest)
{
return _restService.Post(initialRequest);
}