最小起订量单元测试方法 where Collection = serivce.GetCollection()?
Unit Testing Method with Moq where Collection = serivce.GetCollection()?
单元测试和最小起订量的新手。我有一个 WPF 客户端应用程序,它通过 HttpBinding
连接到 WCF 服务。我在 MSTest 中进行了测试 class,我正在使用 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());
}
显然这个测试失败了。我在 'collection' 上得到一个空异常。我如何为我的测试模拟这个字符串列表,或者我不应该用 WCF 服务方法调用编写 void 方法存根,其中 return 列表首先嵌套在它们里面?谢谢
设置后您需要return数据:
var listOfStrings = new List<string>{{"test1"}};
channelMock.Setup(c => c.GetArticleTitles()).Returns(listOfStrings);
必须传入一个字符串数组而不是 List<string>
,因为 WCF 看起来像一个 returns 一个 .ToList()
作为返回一个 []string
的方法在样板代码中。因此传入一个字符串列表会产生一个重载方法无效参数异常。结束于此:
var ArticleTitlesList = new string[] { "LoadArticleTitlesListTestValid" };
channelMock.Setup(c => c.GetArticleTitles()).Returns(ArticleTitlesList);
单元测试和最小起订量的新手。我有一个 WPF 客户端应用程序,它通过 HttpBinding
连接到 WCF 服务。我在 MSTest 中进行了测试 class,我正在使用 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());
}
显然这个测试失败了。我在 'collection' 上得到一个空异常。我如何为我的测试模拟这个字符串列表,或者我不应该用 WCF 服务方法调用编写 void 方法存根,其中 return 列表首先嵌套在它们里面?谢谢
设置后您需要return数据:
var listOfStrings = new List<string>{{"test1"}};
channelMock.Setup(c => c.GetArticleTitles()).Returns(listOfStrings);
必须传入一个字符串数组而不是 List<string>
,因为 WCF 看起来像一个 returns 一个 .ToList()
作为返回一个 []string
的方法在样板代码中。因此传入一个字符串列表会产生一个重载方法无效参数异常。结束于此:
var ArticleTitlesList = new string[] { "LoadArticleTitlesListTestValid" };
channelMock.Setup(c => c.GetArticleTitles()).Returns(ArticleTitlesList);