DEV Community

Cover image for Integration testing concept
Nguyễn Tiến Dũng
Nguyễn Tiến Dũng

Posted on

Integration testing concept

Integration testing là một loại test nhằm đảm bảo rằng các thành phần, module của phần mềm hoạt động đúng cách khi được tích hợp với nhau.

Trong khi unit test tập trung vào từng đơn vị code riêng lẻ, integration test tập trung vào việc tích hợp nhiều đơn vị lại với nhau.

Cụ thể:

Integration test kiểm tra sự tương tác giữa các module/component khác nhau.

Nó liên quan đến tích hợp các phần phần mềm với nhau, ví dụ API với ứng dụng, ứng dụng với cơ sở dữ liệu,...

Việc integration test được thực hiện sau khi unit test các thành phần riêng lẻ.

Nó giúp phát hiện các vấn đề tương tác giữa các thành phần khi được tích hợp với nhau.

Test việc tích hợp API với ứng dụng để kiểm tra liệu ứng dụng có gọi đúng API và xử lý dữ liệu từ API một cách chính xác.

Test ứng dụng với cơ sở dữ liệu để đảm bảo việc truy vấn, cập nhật dữ liệu được thực hiện đúng.

Nói tóm lại, integration test là kiểm tra sự tương tác giữa các thành phần đã được unit test để đảm bảo chúng hoạt động đúng khi tích hợp với nhau.

Ví dụ:

[TestClass]
public class ApiIntegrationTest 
{
    [TestMethod]   
    public void GetData_CheckResult()
    {
        // Gọi API
        var apiResult = Api.GetData();

        // Gọi ứng dụng xử lý dữ liệu từ API         
        var result = App.ProcessData(apiResult);  

        // Kiểm tra kết quả
        Assert.AreEqual(expectedResult, result);    
    }
}
Enter fullscreen mode Exit fullscreen mode

Ở đây tương tự:

Chúng ta gọi API bằng Api.GetData()

Gọi ứng dụng xử lý dữ liệu từ API bằng App.ProcessData(apiResult)

Cuối cùng assert kết quả trả về với kết quả mong đợi.

Đây là một đoạn integration test đơn giản để kiểm tra sự tương tác giữa API và ứng dụng bằng C# .NET.

Những điểm chính khi viết integration test:

Khởi tạo dữ liệu mock nếu cần để test

Gọi các component cần test tương tác với nhau

Kiểm tra kết quả trả về

Ưu tiên dùng database in-memory để test nhanh hơn.

Các loại test này rất quan trọng để đảm bảo mọi thứ hoạt động đúng đắn khi được tích hợp.

Top comments (0)