程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Moq基礎,吉他入門零基礎

Moq基礎,吉他入門零基礎

編輯:關於.NET

Moq基礎,吉他入門零基礎


一、概念

  Moq是利用諸如Linq表達式樹和Lambda表達式等·NET 3.5的特性,為·NET設計和開發的Mocking庫。Mock字面意思即模擬,模擬對象的行為已達到欺騙目標(待測試對象)的效果.
  Moq模擬類類型時,不可模擬密封類,不可模擬靜態方法(適配器可解決),被模擬的方法及屬性必須被virtual修飾.

二、示例

 1 //待模擬對象
 2 public interface ITaxCalculate
 3 {
 4     decimal GetTax(decimal rawPrice);
 5 }
 6 
 7 public class Product
 8 {
 9     public int Id { get; set; }
10 
11     public string Name { get; set; }
12 
13     public decimal RawPrice { get; set; }
14 
15     //目標方法
16     public decimal GetPriceWithTax(ITaxCalculate calc)
17     {
18         return calc.GetTax(RawPrice) + RawPrice;
19     }
20 }
21 
22 //單元測試
23 [TestMethod]
24 public void TestGetTax()
25 {
26     Product product = new Product
27     {
28         Id = 1,
29         Name = "TV",
30         RawPrice = 25.0M
31     };
32 
33     //創建Mock對象,反射構建模擬對象空框架
34     Mock<ITaxCalculate> fakeTaxCalculator = new Mock<ITaxCalculate>();
35 
36     //模擬對象行為
37     fakeTaxCalculator.Setup(tax => tax.GetTax(25.0M)).Returns(5.0M);
38 
39     //調用目標方法
40     decimal calcTax = product.GetPriceWithTax(fakeTaxCalculator.Object);
41 
42     //斷言
43     Assert.AreEqual(calcTax, 30.0M);
44 }

 三、Mock方法

四、參考鏈接

  • http://blog.csdn.net/alicehyxx/article/details/50667307
  • http://www.cnblogs.com/wintersun/archive/2010/09/04/1818092.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved