1

我正在使用 JustMock 和 AutoFac 并尝试模拟一个非常简单的对象数组,但我似乎无法正确使用语法......

        var labResults = Mock.Create<LabResult[]>();

        Mock.Arrange(() => labResults).Returns(new LabResult[]
                                       {
                                           new LabResult
                                           {
                                               EstablishmentID = "0101",
                                               PatientID = "A11111111",
                                               EpisodeNo = 1,
                                               LabNumber = "975310A",
                                               Status = LabResultStatus.Initial,
                                               TestCode = "ABCD",
                                               DateUpdated = DateTime.Now
                                           },

                                           < snip >

                                           new LabResult
                                           {
                                               EstablishmentID = "0101",
                                               PatientID = "A11111112",
                                               EpisodeNo = 1,
                                               LabNumber = "975310A",
                                               Status = LabResultStatus.Final,
                                               TestCode = "ABC",
                                               DateUpdated = DateTime.Now
                                           },
                                   });

代码编译得很好,但是运行时在 Mock.Create 调用上给我一个“System.ArgumentException”错误 - “附加信息:值无效”。

这个让我整个早上都难过,我在任何地方都找不到合适的例子。有人可以告诉我正确的语法吗 - 它需要是一个返回的数组,而不是一个列表。

干杯

4

1 回答 1

3

你不需要模拟。您正在模拟一个数组,只需分配您在模拟设置的一部分中已经获得的值,就可以手动创建该数组。Returns像这样:

var labResults = new LabResult[]
{ 
    new LabResult { ... },
    new LabResult { ... },
};
于 2015-05-28T06:01:10.403 回答