OBJECTMAPPER TRONG REST-ASSURED

OBJECTMAPPER TRONG REST-ASSURED

Trong Rest Assured, ObjectMapper thường được sử dụng để ánh xạ đối tượng Java (POJO – Plain Old Java Object) với các đối tượng JSON trong quá trình thực hiện các kiểm thử API. ObjectMapper giúp chuyển đổi dữ liệu JSON từ các phản hồi API thành các đối tượng Java, và ngược lại, từ các đối tượng Java thành dữ liệu JSON để gửi lên API.

Dưới đây là một số thông tin chi tiết về cách sử dụng ObjectMapper trong Rest Assured:

1.ObjectMapper cơ bản

  • ObjectMapper là một class trong thư viện Jackson, mà Rest Assured thường sử dụng để ánh xạ JSON và đối tượng Java.
  • Để sử dụng ObjectMapper, bạn cần thêm thư viện Jackson vào dự án của mình.
				
					   <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.13.0</version> <!-- Thay số phiên bản bằng phiên bản mới nhất -->
    </dependency>

				
			

2.Chuyển đổi từ JSON sang Java Object

Sử dụng ObjectMapper để chuyển đổi dữ liệu JSON từ một phản hồi API thành đối tượng Java. Điều này giúp bạn dễ dàng truy cập và xử lý dữ liệu từ API trong mã của mình.

				
					Response response = RestAssured.get("https://example.com/api/resource");
MyPojo myPojo = response.as(MyPojo.class);

				
			

3.Chuyển đổi từ Java Object sang JSON

Ngược lại, bạn cũng có thể sử dụng ObjectMapper để chuyển đổi một đối tượng Java thành dữ liệu JSON, để sau đó bạn có thể gửi nó lên API.

				
					MyPojo myPojo = new MyPojo();
String jsonBody = new ObjectMapper().writeValueAsString(myPojo);

				
			

4.Tùy chọn cấu hình

  • ObjectMapper cho phép bạn cấu hình nhiều điều, chẳng hạn như cách ánh xạ tên thuộc tính giữa JSON và Java, xử lý các trường thiếu trong JSON, vv.
  • Bạn có thể sử dụng các phương thức của ObjectMapper để tùy chỉnh cách ánh xạ được thực hiện.

Dưới đây là một ví dụ về việc sử dụng ObjectMapper trong Rest Assured:

				
					import io.restassured.RestAssured;
import io.restassured.mapper.ObjectMapperType;
import io.restassured.response.Response;
import static io.restassured.RestAssured.given;

public class Example {
    public static void main(String[] args) {
        // Lấy phản hồi từ API
        Response response = given().get("https://jsonplaceholder.typicode.com/posts/1");

        // Chuyển đổi JSON thành đối tượng Java bằng ObjectMapper
        Post post = response.as(Post.class, ObjectMapperType.JACKSON_2);

        // In thông tin của đối tượng Java
        System.out.println("UserID: " + post.getUserId());
        System.out.println("ID: " + post.getId());
        System.out.println("Title: " + post.getTitle());
        System.out.println("Body: " + post.getBody());
    }
}

				
			

Trong đoạn mã trên, Post là một đối tượng Java tương ứng với cấu trúc JSON trả về từ API. ObjectMapperType.JACKSON_2 được sử dụng để chỉ định việc sử dụng Jackson 2 để ánh xạ.