【发布时间】:2018-10-30 18:05:21
【问题描述】:
我使用Moq 进行了以下 xunit 测试。
[Fact]
public void Presenter_Filter_ShouldFilterViewSearchList()
{
var mockView = Mock.Get(mockSearchView);
mockView.Setup(v => v.Ids).Returns("123");
presenter.Filter();
var mockRepo = Mock.Get(mockSearchRepository);
Filter filter = new Filter { Ids = new List<string> { "123" } };
mockRepo.Verify(r => r.GetSearchItems(5000, filter), Times.Once);
}
测试失败并显示以下消息。
预期在模拟上调用一次,但为 0 次:r => r.GetSearchItems(5000, Filter) 未配置任何设置。 执行的调用: ISearchRepository.GetSearchItems(5000) ISearchRepository.GetSearchItems(5000, 过滤器)以下是测试的功能。并调用了ISearchRepository.GetSearchItems(5000, Filter)?
public void Filter()
{
var filter = new Filter {
Name = _view.Name,
Ids = _view.Ids?.Split(',').Select(x => x.Trim()).ToList(),
Countries = _view.Countries?.Split(',').Select(x => x.Trim()).ToList(),
Region = _view.Region,
};
_repository.GetSearchItems(5000, filter);
}
【问题讨论】:
-
您实际上在哪里让被测系统使用您创建的模拟存储库?