我正在尝试在存储库上设置期望。该方法使用params keyword:
string GetById(int key, params string[] args);
我已经设定的期望:
var resourceRepo = MockRepository.GenerateMock<IResourceRepository>();
resourceRepo.Expect(r => r.GetById(
Arg<int>.Is.Equal(123),
Arg<string>.Is.Equal("Name"),
Arg<string>.Is.Equal("Super"),
Arg<string>.Is.Equal("Mario"),
Arg<string>.Is.Equal("No"),
Arg<string>.Is.Equal("Yes"),
Arg<string>.Is.Equal("Maybe")))
.Return(String.Empty);
抛出此异常:
测试方法 XYZ抛出异常:System.InvalidOperationException: 录制时,只在模拟方法调用中使用Arg。预计2个论点,7 已定义。
我期望的设定有什么问题?
答案 0 :(得分:9)
params只是一个数组:
var resourceRepo = MockRepository.GenerateMock<IResourceRepository>();
resourceRepo
.Expect(r => r.GetById(
Arg<int>.Is.Equal(123),
Arg<string[]>.List.ContainsAll(new[]
{
"Name",
"Super",
"Mario",
"No",
"Yes",
"Maybe"
})))
.Return(String.Empty);