我正在玩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"
}
}
有关如何解决此错误的任何帮助?
答案 0 :(得分:2)
我发现了问题。
当我使用Maven构建我的项目时,我只是粘贴了他们的(Rest Driver)Maven依赖代码,我认为一切都是正确的。
嗯,由于某种原因它不是使用1.1版本的harmcrest-core
依赖而不是版本1.3
我添加了harmcrest-core
的1.3版本作为我的依赖项,删除了1.1版,它编译得很好。