2
我對Rhino Mock有個疑問。關於Rhino Mock的問題(RhinoAutoMocker)
我想限制哪些方法可以從被測方法中調用。
可以說我有,我反對這樣寫單元測試的方法:
public void MyMethod()
{
var test = _Repository.Get(2);
_Services.DoSomething(test);
}
什麼我現在做的是這樣的:
[Test]
public void TestMethod()
{
var mock1 = CreateMock<IRepository>();
var mock2 = CreateMock<IServices)();
mock1.Expect(x => x.Get(1).IgnoreArguments().Return(new Poo()).Repeat.Once();
mock2.Expect(x => x.DoSomething(new Something()).IgnoreArguments().Repeat.Once();
ClassUnderTest.MyMethod();
mock1.VerifyAllExpectations();
mock2.VerityAllExpectations();
}
,這是好的,但什麼我想要防止有人改變這樣的方法:
public void MyMethod()
{
var test = _Repository.Get(2);
var test = _Repository.Save(test);
_Services.DoSomething(test);
}
正如你可以看到Repo的Save方法所謂的sitory,所以這顯然是危險的,因爲如果有人誤加了那條線我們就會遇到麻煩。
我該如何限制某人做這件事?謝謝。
謝謝您的回答。有一個小問題。使用Repeat.Never()和AssertWasNotCalled有點慢,因爲可以說如果我有20種方法,我不想成爲那麼我不得不像上面那樣列出所有這些方法。 第一個選項看起來不錯,但我無法完全使用AutoMock來使用它。我會稍後再試。 – Raha 2010-08-12 06:54:48