【发布时间】:2017-12-28 11:00:19
【问题描述】:
我在使用 Moq 对接受多个参数的函数进行单元测试时遇到问题。我做了以下步骤来最小起订量服务。
创建了一个模拟对象来接口。接口中的相关方法包含四个参数,即int类型、集合和对象。所以我首先初始化了那些需要的变量,
然后设置模拟对象以返回预定义类型的对象。
-
在使用所需参数调用服务类中的相关方法之后,该方法不会返回它应该返回的对象(起订量对象),而是返回一个空对象。
我是否遗漏了以下代码中的任何内容?
Collection<MyDocumentSample spec = new Collection<MyDocumentSample()
{
new MyIdSample() { SampleID = 1234 } };
int index = 0;
int maxNoOfRows = 2;
MyDocumentListSortFields sortFeild = new
MyDocumentListSortFields()
{
Descending = false,
SortField = MyDocumentListSortFields.SortFields.Date
};
var bundleOfObjects = new bundleOfObjects { Entry = new List<bundleOfObjects.EntryComponent() };
MySampleDocument resource_1 = new MySampleDocument();
resource_1.Id = "1005823";
resource_1.Description = "Test 1";
resource_1.Created = "11/20/2017 12:59:47 PM";
bundleOfObjects.AddTobundleOfObjects(resource_1, null);
var m_documentWrapperHelperMock = new Mock<IDocumentSampleHelper();
var m_configMock = new Mock<IConfiguration();
m_documentWrapperHelperMock.Setup(x => x.GetSampleDocumentsWithOffSets(spec, index, maxNoOfRows, sortFeild)).Returns(bundleOfObjects);
var service = new MySampleDocumentService(m_configMock.Object, m_documentWrapperHelperMock.Object);
【问题讨论】:
-
请添加您要测试的代码。有一堆自定义类型,因此很难判断
moq是连接不正确还是其他错误 -
您将一个空的 m_configMock 对象传递给服务,设置在哪里?
-
一目了然,我在该代码中看到一个语法错误。如果您不发布实际运行的代码,可能很难提供帮助,因为很容易产生错误的想法。
标签: c# unit-testing testing moq