新的单元测试和Moq . 我有一个WPF客户端应用程序通过 HttpBinding
挂钩到WCF服务 . 我在MSTest有一个测试类,我正在用Moq嘲笑我的服务:
[TestClass]
public class ArticleDataGridTests
{
//Mock channel for WCF service. Moq mocking framework.
Mock<IIsesServiceChannel> channelMock = new Mock<IIsesServiceChannel>();
[TestMethod]
public void LoadArticleTitlesListTestValid()
{
channelMock.Setup(c => c.GetArticleTitles());
ArticleDataGridViewModel articleDataGridViewModel = new ArticleDataGridViewModel(channelMock.Object);
articleDataGridViewModel.LoadArticleTitlesList();
channelMock.Verify(c => c.GetArticleTitles(), Times.Once());
}
}
}
这是在ViewModel中调用的方法 LoadArticleTitles list
. ArticlesTitleList
是 List<string>
:
public void LoadArticleTitlesList()
{
ArticleTitlesList = new List<string>(IsesService.GetArticleTitles());
}
显然这个测试失败了 . 我在'集合'上得到一个null异常 . 如何为我的测试模拟这个字符串列表,或者我不应该用WCF服务方法调用编写void方法存根,这些调用首先返回嵌套在它们内部的列表?谢谢
2 回答
您需要在设置后返回数据:
不得不传入一个字符串数组而不是
List<string>
,因为WCF看起来像一个返回.ToList()
的方法被删除,因为在锅炉板代码中返回[]string
. 因此传入一个字符串列表会给出一个重载方法无效的参数异常 . 结束了这个: