如何为 Rest Assured 3.0.3 声明默认解析器(使用 Java 和 TestNG)?

How do I declare a default parser for Rest Assured 3.0.3 (using Java and TestNG)?

大家好,

我是公认的新手 Java 程序员,但我会注意研究文档和常见问题解答以尝试解决过去的问题。然而,这是我无法克服的问题。我正在使用 RestAssured(版本 3.0.3,由 Maven 提取)并且无法让 RestAssured 解析 "text/plain" 内容(相反,我无法让 Java 编译代码来这样做)。

编译成功但报错:

import static io.restassured.RestAssured.*;
import static io.restassured.matcher.RestAssuredMatchers.*;
import static org.hamcrest.Matchers.*;

import static io.restassured.module.jsv.JsonSchemaValidator.*;

import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.testng.annotations.AfterClass;

public class TestNG2 {

/*
   userName, passWord and server defined here as protected static Strings
*/
    @Test
    public void filter_Asset(){

        given().
            auth().basic(userName, passWord).
        when().
            get ("http://" + server +"/api/filter?type=$tAsset").
        then().
            statusCode(200).
            body("count", greaterThan(0));
    }
}

错误:

java.lang.IllegalStateException: Expected response body to be verified as JSON, HTML or XML but content-type 'text/plain' is not supported out of the box. Try registering a custom parser using: RestAssured.registerParser("text/plain", );

但是,当我尝试在 filter_Asset 测试中包含以下行时:

RestAssured.registerParser("text/plain", Parser.JSON);

代码将无法编译并出现以下投诉:

java.lang.Error: Unresolved compilation problems: RestAssured cannot be resolved Parser cannot be resolved to a variable

当我尝试使用以下声明时收到类似的投诉:

RestAssured.defaultParser = Parser.JSON;

无论如何,我正在 Windows 7、64 位机器上工作。使用 Eclipse Neon.3 (4.6.3),我的 JDK 是 1.8_131

我已经查阅了 RestAssured 用法和文档页面,相信我正确地导入了包等等。我是否在某处犯了菜鸟错误?

这是菜鸟的错误!

除了静态导入 class 方法外,编译器还需要导入以下 classes:

import io.restassured.RestAssured;
import io.restassured.parsing.Parser;

在这些声明之后,我能够在 filter_Asset 测试中注册默认解析器:

RestAssured.registerParser("text/plain", Parser.JSON);