犀牛嘲笑断言用索引器和args

时间:2012-12-13 16:54:18

标签: c# unit-testing rhino-mocks rhino-mocks-3.5

我试图断言以下被称为

cacheManager.Site[typeName] = items.Where(x => !requestContext.DefaultSites.Contains(x.SiteId)).ToList();

我无法使用args编制索引器的语法,我有这个

manager.Site.AssertWasCalled(x => x[TypeName] = Arg<IList<FcCacheObject>>.Matches(y => y.Count.Equals(1)));

但它要求索引器也使用args,我该怎么做?

1 个答案:

答案 0 :(得分:1)

这很简单:)

我假设你的索引器参数类型是string。然后在断言而不是

x[TypeName]

使用

x[Arg<string>.Is.Equal(TypeName)]

结果你的断言看起来应该是:

manager.Site.AssertWasCalled(x => x[Arg<string>.Is.Equal(TypeName)] = Arg<IList<FcCacheObject>>.Matches(y => y.Count.Equals(1)));