hasStatusCode(int)的类型是错误的 - Netbeans 8.0.2

时间:2015-04-29 16:28:19

标签: java rest netbeans junit

我正在玩REST Driver API来测试我的Restful服务。

从他们的github示例中,他们有:

Response response = get( "http://www.example.com" );

assertThat(response, hasStatusCode(200)); // Compilation error here!
assertThat(response.asJson(), hasJsonPath("$.name", equalTo("jeff")));

如果我将此代码放在我的测试类中的方法中,我会从Netbeans那里得到一个奇怪的编译错误。

错误是:The type of hasStatusCode(int) is erroneous(请参阅上面的注释(在代码中)以显示此错误。

我无法获得有关此错误的更多信息,我发现的唯一有用的信息来自另一个SO问题,here

我重新启动了netbeans,编译错误永远不会消失。我唯一的希望是它是一个netbeans bug还是我导入了错误的类。

这是我的班级代码:

import com.github.restdriver.serverdriver.Matchers;
import static com.github.restdriver.serverdriver.RestServerDriver.get;
import static com.github.restdriver.serverdriver.RestServerDriver.header;
import com.github.restdriver.serverdriver.http.response.Response;
import org.junit.After;
import org.junit.AfterClass;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;


public class NewEmptyJUnitTest {

    public NewEmptyJUnitTest() { }

    @BeforeClass
    public static void setUpClass() { }

    @AfterClass
    public static void tearDownClass() { }

    @Before
    public void setUp() { }

    @After
    public void tearDown() { }

    @Test
    public void getJsonResponse() {

        Response response = get("google.com" + "/things/5", header("Accept", "application/json"));

        // Hamcrest matcher for HTTP status code
        assertThat(response, Matchers.hasStatusCode(200)); // Compilation error here -> "The type of hasStatusCode(int) is erroneous"

    }
}

有关如何解决此错误的任何帮助?

1 个答案:

答案 0 :(得分:2)

我发现了问题。

当我使用Maven构建我的项目时,我只是粘贴了他们的(Rest Driver)Maven依赖代码,我认为一切都是正确的。

嗯,由于某种原因它不是使用1.1版本的harmcrest-core依赖而不是版本1.3

我添加了harmcrest-core的1.3版本作为我的依赖项,删除了1.1版,它编译得很好。