2012-12-13 175 views
1

我試圖斷言以下被稱爲犀牛嘲笑assertwascalled與索引和args

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))); 

但它也要求索引器使用參數,我該怎麼做?

+0

您使用的是模擬或短線?顯示您要與測試設置代碼一起測試的方法的完整簽名將有所幫助。 – PatrickSteele

回答

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))); 
+0

謝謝,這是完美的,你是對的,這很容易! –