Share Sử dụng Moq để tạo giả trong lập trình C#

orangepanda658

New member
#MOQ #csharp #Đơn vị kiểm tra #Phụ thuộc-insjection #Mocking ## Sử dụng moq để giả trong lập trình C #

Trong phát triển phần mềm, chế giễu là một kỹ thuật được sử dụng để kiểm tra mã bằng cách thay thế các phụ thuộc thực bằng việc triển khai giả.Điều này cho phép bạn cô lập mã của mình và kiểm tra nó một cách cô lập, mà không phải lo lắng về các phụ thuộc.

Một trong những khung chế nhạo phổ biến nhất cho C# là [MOQ] (https://github.com/moq/moq).MOQ giúp dễ dàng tạo ra các triển khai giả mạo của các giao diện và các lớp, và nó cung cấp một số tính năng giúp chế giễu mạnh mẽ và linh hoạt hơn.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách sử dụng MOQ để phụ thuộc giả trong mã C# của bạn.Chúng tôi sẽ bắt đầu bằng cách tạo một lớp đơn giản mà chúng tôi sẽ muốn kiểm tra.

`` `C#
Máy tính lớp công khai
{
công khai int add (int a, int b)
{
trả lại A + B;
}

công khai int trừ (int a, int b)
{
trả lại a - b;
}
}
`` `

Bây giờ, hãy tạo một lớp kiểm tra cho lớp máy tính.

`` `C#
Tính toán lớp công cộng
{
[Bài kiểm tra]
void void add_twonumbers_returnstheirsum ()
{
// Tạo một chế độ giả của lớp máy tính.
var máy tính = new mock <calculator> ();

// Mong đợi việc giả sẽ trở lại 5 khi thêm (2, 3) được gọi.
Máy tính.setup (c => c.Add (2, 3)). Trả về (5);

// Gọi phương thức Thêm trên giả.
int result = calculat.Object.add (2, 3);

// Xác minh rằng giả đã trả lại giá trị dự kiến.
Assert.areequal (5, kết quả);
}
}
`` `

Trong thử nghiệm này, trước tiên chúng tôi tạo một chế độ giả của lớp máy tính bằng phương pháp nhà máy `Mock <t>`.Sau đó, chúng tôi sử dụng phương thức `setup` để chỉ định hành vi của giả.Trong trường hợp này, chúng tôi sẽ bảo việc giả quay lại 5 khi phương thức `Thêm (2, 3)` được gọi.

Cuối cùng, chúng tôi gọi phương thức `add` trên giả và xác minh rằng nó đã trả về giá trị dự kiến.

MOQ cung cấp một số tính năng khác có thể làm cho chế giễu mạnh mẽ và linh hoạt hơn.Ví dụ: bạn có thể sử dụng MOQ để chế giễu các giao diện, lớp học và thậm chí toàn bộ dịch vụ.Bạn cũng có thể sử dụng MOQ để xác minh các cuộc gọi được thực hiện cho Mock và để ném các trường hợp ngoại lệ khi giả được sử dụng một cách bất ngờ.

Nếu bạn quan tâm đến việc tìm hiểu thêm về MOQ, tôi khuyên bạn nên kiểm tra [tài liệu MOQ] (Moq).

## hashtags

* #MOQ
* #csharp
* #kiểm tra đơn vị
* #Injection phụ thuộc
* #Chế giễu
=======================================
#MOQ #csharp #Unit-testing #dependency-injection #Mocking ## Use MOQ to Fake in C# Programming

In software development, mocking is a technique used to test code by replacing real dependencies with fake implementations. This allows you to isolate your code and test it in isolation, without having to worry about the dependencies.

One of the most popular mocking frameworks for C# is [MOQ](https://github.com/moq/moq). MOQ makes it easy to create fake implementations of interfaces and classes, and it provides a number of features that make mocking more powerful and flexible.

In this article, we'll show you how to use MOQ to fake dependencies in your C# code. We'll start by creating a simple class that we'll want to test.

```c#
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}

public int Subtract(int a, int b)
{
return a - b;
}
}
```

Now, let's create a test class for the Calculator class.

```c#
public class CalculatorTests
{
[Test]
public void Add_TwoNumbers_ReturnsTheirSum()
{
// Create a mock of the Calculator class.
var calculator = new Mock<Calculator>();

// Expect the mock to return 5 when Add(2, 3) is called.
calculator.Setup(c => c.Add(2, 3)).Returns(5);

// Call the Add method on the mock.
int result = calculator.Object.Add(2, 3);

// Verify that the mock returned the expected value.
Assert.AreEqual(5, result);
}
}
```

In this test, we first create a mock of the Calculator class using the `Mock<T>` factory method. We then use the `Setup` method to specify the behavior of the mock. In this case, we're telling the mock to return 5 when the `Add(2, 3)` method is called.

Finally, we call the `Add` method on the mock and verify that it returned the expected value.

MOQ provides a number of other features that can make mocking more powerful and flexible. For example, you can use MOQ to mock out interfaces, classes, and even entire services. You can also use MOQ to verify the calls that were made to the mock, and to throw exceptions when the mock is used in an unexpected way.

If you're interested in learning more about MOQ, I recommend checking out the [MOQ documentation](https://moq.github.io/).

## Hashtags

* #MOQ
* #csharp
* #Unit-testing
* #dependency-injection
* #Mocking
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top