Moq允許開發人員嘲笑受保護的成員。我在Rhino.Mocks尋找相同的功能,但未能找到它。如何用Rhino.Mocks模擬受保護的虛擬成員?
這裏是一個例子,從Moq Quick Start頁面如何模擬受保護的方法。
// at the top of the test fixture
using Moq.Protected()
// in the test
var mock = new Mock<CommandBase>();
mock.Protected()
.Setup<int>("Execute")
.Returns(5);
// if you need argument matching, you MUST use ItExpr rather than It
// planning on improving this for vNext
mock.Protected()
.Setup<string>("Execute",
ItExpr.IsAny<string>())
.Returns(true);
讓我知道,如果我追逐的東西,不退出。
你可能想看看這個鏈接http://geekswithblogs.net/MattRobertsBlog/archive/2008/12/16/how-to-make-a-quotprotectedquot-method-available-for-quotpartialquot-mocking-and-again.aspx – juharr 2011-03-04 20:11:47
這不是一個真正合適的解決方案 - 不得不改變你的原始類,以在其他類m中內部公開方法你是否正在改變你的設計以迎合測試。難聞的氣味對我來說。 – 2011-11-21 08:34:36