使用Rhino Mocks如何存根使用params关键字的方法?

ahs*_*ele 9 c# rhino-mocks mocking stub rhino-mocks-3.5

我试图在存储库上设置期望.该方法使用params关键字:

string GetById(int key, params string[] args);
Run Code Online (Sandbox Code Playgroud)

我设定的期望:

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);
Run Code Online (Sandbox Code Playgroud)

抛出此异常:

测试方法XYZ引发异常:System.InvalidOperationException:在记录时在模拟方法调用中仅使用Arg.预计有2个参数,已经定义了7个.

设定我的期望有什么问题?

Ste*_*ger 10

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);
Run Code Online (Sandbox Code Playgroud)