我怎麼這個MOQ代碼轉換:FakeItEasy回調實現
fooMoq.Setup(x => x.SayHello("xxx")).Returns("hello").Callback((string name) =>
{
Assert.AreEqual(name, "xxx");
});
到FakeItEasy?
我怎麼這個MOQ代碼轉換:FakeItEasy回調實現
fooMoq.Setup(x => x.SayHello("xxx")).Returns("hello").Callback((string name) =>
{
Assert.AreEqual(name, "xxx");
});
到FakeItEasy?
我認爲你必須做這樣的:
A.CallTo(() => foo.SayHello("name")).Returns("hello");
BTW:你爲什麼要使用fakeiteasy,它看起來對我來說比moq那麼強大?
A.CallTo(() => fooMoq.SayHello("xxx")).Invokes((string name) => { Assert.AreEqual(name, "xxx"); }).Returns("hello");
試試這個:
A.CallTo(() => foofake.SayHello("name")).WithAnyArguments().Returns("xxx");
var foo=new foo(foofake);
var responseReturned=foo.Functioncall(name);
Assert.AreEqual(responseReturned, "xxx");
它怎麼那麼強大?如果有什麼更強大的,但我說他們幾乎是平等的。這是一個品味問題。 –
功率也不是一切。語法非常重要。我從Rhino Mocks轉換到FakeItEasy的主要原因之一是語法更具可讀性。有些人也使用[NSubstitute](http://nsubstitute.github.com/),看起來不錯。 –
我認爲FakeItEasy和MOQ幾乎是一樣的(在我看了FakeItEasy之後)。當時我們必須決定我們公司採用哪種模擬框架,最小起訂量比其他所有框架都強大。他們是第一個使用lambda語法的人。在做出這個決定之後,如果其他框架發生了變化,我不會每個月都看一次。如果你真的需要改變,你只會重寫數以千計的單元測試給我們另一個模擬框架。 – Fischermaen