我在Dimecasts.net上觀看了Introduction to Moq video。在視頻中,當人建立自己的起訂量的測試,他有下面的代碼:這個Moq測試如何工作主要關於linq語法?
[Test]
public void TestWithMock()
{
var mockEmailService = new Mock<IEmailService>();
mockEmailService.Expect(x =>
x.SendEmail(It.IsAny<string>,It.IsAny<string>)).Returns(true);
var emailer = new Emailer(mockEmailService.Object);
emailer.SendBatchEmails();
}
這裏是我的問題:
1)通過所有不同類型的字符串測試SendBatchEmails方法是否起訂量環? 我想我對如何嘲笑作品有點困惑。
2)有人可以解釋Expect部分的lambda語法嗎? 3)作者首先在SendEmail函數中有「」,「」,但是失敗了,所以他把 It.IsAny<string>
,但是我仍然不清楚爲什麼它以「」,「」失敗。
Stackoverflow未將字符串關鍵字放在尖括號中。
(固定)
+1。還要注意,這並不真正測試任何東西 - 沒有斷言,期望也沒有Verifiable,也沒有調用mockEmailService.Verify()。 (我通常會進行狀態測試,但在這裏可能需要進行行爲測試。) – TrueWill 2009-10-07 23:04:45
感謝您的解釋。 – Xaisoft 2009-10-07 23:36:52