c# - 无法使用 JustMock 模拟简单对象数组

标签 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
                                           },
                                   });

代码编译正常,但运行时在 Mock.Create 调用中出现“System.ArgumentException”错误 - “附加信息:值无效”。

这个让我难住了整个上午,我在任何地方都找不到合适的例子。谁能告诉我正确的语法 - 它需要是返回的数组,而不是列表。

干杯

最佳答案

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

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

关于c# - 无法使用 JustMock 模拟简单对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30497352/

相关文章:

c# - NHibernate OutOfMemoryException 查询大字节 []

c# - C# 开发人员在使用 WPF 之前应该了解什么

c# - 如何将客户的 IP 地址转发到 Google Places Autocomplete API

c# - 无法将类型 IEnumerable 转换为列表

javascript - 背景颜色没有改变

c++ - 谷歌在同一解决方案中测试多个 C++ 项目

javascript - 如何查找对象数组中的属性并将这些对象移动到对象中的另一个数组?

.net - 无法将类型 'System.Byte' 的对象转换为类型 'System.Byte[]' - vb .net

unit-testing - 如何对使用插件方法的 grails 服务进行单元测试?

android - Realm 单元测试