我想模擬使用System.Security.Cryptography.RandomNumberGenerator,不幸是一個抽象的基類,而不是一個接口。RhinoMocks和抽象基類
當我嘗試建立在Rhino.Mocks一種期待:
int iterations = 10 ;
byte[] fakeHash = {0, 1, 3, 6};
mocks.Get<HashAlgorithm>().Expect(x => x.ComputeHash(Arg<byte[]>.Is.NotNull))
.Return(fakeHash).Repeat.Times(iterations);
我從ABC拋出的異常:
試驗方法 Tests.Utils.FooTest.BarTest 拋出異常:System.ArgumentNullException:值不能爲空。 參數名稱:在 System.Security.Cryptography.HashAlgorithm.ComputeHash(字節[]緩衝液)緩衝液
的ABC被強制執行該傳遞的參數不變不爲空,但犀牛行經空。請注意,這是作爲期望/存根的設置的一部分發生的,而不是當它被稱爲測試的一部分時。
我該如何解決這個問題,但是仍然得到該方法將被調用的期望以及我想要的假結果?當然,我可以製作自己的模擬課程,但我更願意找到一種方法來做到這一點,而不需要這樣做。
謝謝。