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.
com.fasterxml.jackson.corejackson-databind2.13.0
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.
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ạ.