我有一个REST Assured在我们的一个JAR项目中工作。现在我正在尝试在WAR项目中添加类似的测试类。
我在WAR项目中添加了REST Assured:
<dependency conf="test->default" org="com.jayway.restassured"
name="rest-assured" rev="1.8.1"/>
我在测试类路径上也有ASM(asm-4.0
,asm-analysis-4.0
,asm-commons-4.0
,asm-tree-4.0
,asm-util-4.0
);提到这一点,因为我的问题的唯一搜索结果表明与ASM的关系。
当我运行测试时,它会出现以下错误:
java.lang.NoSuchMethodError: org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
at com.jayway.restassured.internal.ResponseParserRegistrar.<init>(ResponseParserRegistrar.groovy)
at com.mycompany.testSomething(SomethingTest.java:50)
我已将测试最小化到以下内容:
@Test
public void testSomething() {
ResponseParserRegistrar r = new ResponseParserRegistrar();
}
显然我没有直接需要创建ResponseParserRegistrar
,但这就是REST Assured所做的事情,当我使用REST Assured时失败了。
非常感谢您的帮助!
答案 0 :(得分:0)
查看https://code.google.com/p/rest-assured/wiki/FAQ上的常见问题解答#2,它可以解决您的类路径问题。另外我鼓励你升级到更新的版本,因为1.8.1真的很旧。
答案 1 :(得分:0)
服务器可能无法读取您的方法,否则将需要一些参数。
当程序尝试调用不存在的类方法时,抛出NoSuchMethodError。该方法可以是静态的,也可以是实例方法