大家好,

我是公认的Java程序员新手,但我会认真研究文档和FAQ,以解决过去的问题。但是,这是我无法克服的问题。我正在使用RestAssured(由Maven拉出的3.0.3版),无法获取RestAssured来解析“文本/纯文本”内容(相反,我无法让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));
    }
}

错误:



但是,当我尝试在filter_Asset测试中包括以下行时:
RestAssured.registerParser("text/plain", Parser.JSON);

该代码不会与以下投诉一起编译:



当我尝试使用以下声明时,我也会收到类似的投诉:
RestAssured.defaultParser = Parser.JSON;

对于它的值(value),我正在Windows 7、64位计算机上工作。使用Eclipse Neon.3(4.6.3)和我的JDK是1.8_131

我已经查阅过RestAssured的用法和说明文件页面,相信可以正确导入软件包,等等。我是否在某个地方出现了菜鸟错误?

最佳答案

这是一个菜鸟的错误!

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

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

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

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

10-06 12:15