Testing 不允许放置-请大摇大摆地放心

Testing 不允许放置-请大摇大摆地放心,testing,junit,swagger,rest-assured,web-api-testing,Testing,Junit,Swagger,Rest Assured,Web Api Testing,我正在使用REST-Assured和Swagger运行API测试,使用Atlassian()的Swagger请求验证程序包 我在测试一些PUT Api时遇到了一个奇怪的问题: given() .pathParam("id", "1") .headers("Content-Type", "application/x-www-form-urlencoded") .when() .queryParams

我正在使用REST-Assured和Swagger运行API测试,使用Atlassian()的Swagger请求验证程序包

我在测试一些PUT Api时遇到了一个奇怪的问题:

        given()

            .pathParam("id", "1")
            .headers("Content-Type", "application/x-www-form-urlencoded")

    .when()
            .queryParams("id", "1",
                         "package", "Yogev")

            .put("/packages/{id}.json")
    .then()
            .assertThat()
            .statusCode(200);
}
这里是一个招摇过市的json:

"/packages/{id}.json": {
  "put": {
    "description": "Updates p....
这就是错误:
com.atlassian.oai.validator.restassured.SwaggerValidationFilter$SwaggerValidationException:验证失败。
[错误]路径'/packages/1.json'上不允许执行PUT操作。
位于com.atlassian.oai.validator.restassered.SwaggerValidationFilter.filter(SwaggerValidationFilter.java:61)
在io.restassured.filter.filter$filter.call时(未知源)
位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
在io.restassured.filter.filter$filter$0.call时(未知源)
在io.restasured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)上
在io.restassured.filter.FilterContext$next.call时(未知源)
在io.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1731)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.base/java.lang.reflect.Method.invoke(Method.java:564)
位于org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
位于groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
在groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
位于groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
位于groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:815)
在io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)上
位于org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
位于org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:58)
位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
在io.restassured.internal.RequestSpecificationImpl.ApplyPathParamandSendRequest(RequestSpecificationImpl.groovy:1737)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.base/java.lang.reflect.Method.invoke(Method.java:564)
位于org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
位于groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
在groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
位于groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
位于groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:815)
在io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)上
位于org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:48)
位于org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:58)
位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
在io.restasured.internal.RequestSpecificationImpl.put(RequestSpecificationImpl.groovy:178)上
在io.restasured.internal.RequestSpecificationImpl.put(RequestSpecificationImpl.groovy)上
在ApiTests.PatientsTest.patientsprofiletest.updatePatientProfile(patientsprofiletest.java:27)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.base/java.lang.reflect.Method.invoke(Method.java:564)
位于org.junit.runners.model.FrameworkMethod$1.runReflectVeCall(FrameworkMethod.java:50)
位于org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
位于org.junit.runners.model.FrameworkMethod.invokeeexplosive(FrameworkMethod.java:47)
位于org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
位于org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
位于org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
位于org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
位于org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
位于org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
位于org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
访问org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
位于org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
位于org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
位于org.junit.runners.ParentRunner.run(ParentRunner.java:363)
位于org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
位于org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
位于org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
位于java.base/jdk.internal。
[ERROR] PUT operation not allowed on path '/packages/1.json'.