无法用JustMock模拟简单的对象数组

时间:2015-05-28 04:36:13

标签: c# arrays unit-testing autofac justmock

我正在使用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
                                           },
                                   });

代码编译得很好但是在运行时给了我一个&#39; System.ArgumentException&#39; Mock.Create电话上的错误 - &#39;其他信息:价值无效&#39;。

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

干杯

1 个答案:

答案 0 :(得分:3)

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

var labResults = new LabResult[]
{ 
    new LabResult { ... },
    new LabResult { ... },
};