Trong tiếng Anh đơn giản, Moq là một thư viện mà khi bạn đưa vào dự án của bạn cung cấp cho bạn sức mạnh để làm đơn vị kiểm tra dễ cách thức. Tại sao? Bởi vì một hàm có thể gọi một hàm khác, sau đó một hàm khác và vân vân. Nhưng trong thực tế những gì là cần thiết, chỉ là giá trị trả lại từ cuộc gọi đầu tiên để tiến tới dòng tiếp theo. Moq giúp bỏ qua cuộc gọi thực tế của phương thức đó và thay vào đó bạn trả lại hàm mà hàm đó đang trả về. và xác minh sau khi tất cả các dòng mã đã thực hiện, những gì bạn mong muốn là những gì bạn nhận được hay không. Quá nhiều tiếng Anh, vì vậy đây là một ví dụ:
String Somethod()
{
IHelper help = new IHelper();
String first = help.firstcall();
String second= secondcall(first);
return second;
}
Bây giờ, đây first
là cần thiết để cho secondcall()
, nhưng bạn có thể không thực sự gọi help.firstcall()
vì nó ở một số lớp khác. Vì vậy, Mocking được thực hiện, giả mạo phương pháp đó được gọi là:
[TestMethod]
public void SomeMethod_TestSecond
{
mockedIHelper.Setup(x=>x.firstcall()).Returns("Whatever i want");
}
đây, suy nghĩ, SetUP
như giả mạo cuộc gọi phương thức, chúng tôi chỉ quan tâm đến Returns
.
Nguồn
2013-08-14 19:13:20
Cảm ơn tuyệt vời ... Tôi nghĩ tôi cần đọc thêm về kiểm tra đơn vị nữa - Được đánh giá cao cảm ơn bạn – leen3o
MOQ cũng là một thuật ngữ được sử dụng trong kinh doanh = "Số lượng đặt hàng tối thiểu": một sản phẩm có giá 100 đô la số lượng 5000 chiếc có thể thấp tới 20 đô la nếu bạn mua một triệu đơn vị. Đó là không có gì để làm với khoa học máy tính tôi biết! :) –
Chính xác hơn, đó là một khung cách ly, vì không phải tất cả hàng giả đều là mocks. – StuperUser