嗨,我使用Play框架2.4.3和scala版本2.11我使用放心scala支持测试路线,但我得到
java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V
经过研究,我发现Junit导致了rest assured hamcrest matcher NoSuchMethodError的问题,hamcrest 1.3
import io.restassured.RestAssured._
import io.restassured.RestAssured.when
import io.restassured.module.scala.RestAssuredSupport.AddThenToResponse
import io.restassured.matcher.RestAssuredMatchers._
import org.hamcrest.Matchers._
import org.scalatest._
import org.scalatest.FunSpec
import play.api.libs.json._
describe("user signed up")
{
it("user inserted to db after signup")
{
val json: JsValue = JsObject(Seq(
"firstName" -> JsString("alice"),
"lastName" -> JsString("bob"),
"email" -> JsString("example@gmail.com"),
"secondryEmail" -> JsString("example1@gmail.com"),
"password" -> JsString("a@s**dasda_sds5")
))
given()
.port(9000)
.contentType("application/json")
.body(json.toString())
.when()
.post("/direct-user/signup-processing")
.Then()
.statusCode(200)
.body("status", equalTo(200)
,"msg", equalTo("Signup Successful"))
}
}
}
这是构建。sbt文件内容
libraryDependencies ++= Seq(filters,
"io.rest-assured" % "scala-support" % "3.0.6",
"org.scalatest" %% "scalatest" % "2.2.6" % "test"withSources() withJavadoc(),
"org.scalatestplus" %% "play" % "1.4.0-M3" % "test",
"com.esotericsoftware.kryo" % "kryo" % "2.10",
"org.mongodb" %% "casbah" % "2.8.0",
"org.slf4j" % "slf4j-api" % "1.6.4",
"org.elasticsearch" % "elasticsearch" % "1.6.0",
"com.typesafe.akka" %% "akka-actor" % "2.3.6",
"com.typesafe.akka" % "akka-testkit_2.11" % "2.3.6",
"ch.qos.logback" % "logback-core" % "1.0.9",
"com.github.nscala-time" %% "nscala-time" % "2.0.0",
"com.hazelcast" % "hazelcast" % "3.5",
"com.hazelcast" % "hazelcast-client" % "3.5",
"com.twitter" % "chill-bijection_2.11" % "0.7.0",
"com.github.slugify" % "slugify" % "2.1.3" ,
"org.mindrot" % "jbcrypt" % "0.3m",
"org.codehaus.groovy" % "groovy-all" % "2.4.0",
"org.apache.lucene" % "lucene-expressions" % "4.10.4",
"com.restfb" % "restfb" % "1.19.0",
"org.twitter4j" % "twitter4j-core" % "4.0.0",
"org.scribe" % "scribe" % "1.3.5",
"com.google.code.gson" % "gson" % "2.6.2",
"com.google.oauth-client" % "google-oauth-client" % "1.20.0",
"com.google.api.client" % "google-api-client-auth-oauth2" % "1.2.0-alpha",
"com.google.api-client" % "google-api-client" % "1.20.0",
"com.google.http-client" % "google-http-client-jackson" % "1.20.0",
"com.google.apis" % "google-api-services-oauth2" % "v2-rev120-1.20.0",
"com.google.oauth-client" % "google-oauth-client-appengine" % "1.20.0",
"com.google.oauth-client" % "google-oauth-client-java6" % "1.20.0",
"com.google.oauth-client" % "google-oauth-client-jetty" % "1.20.0",
"com.google.oauth-client" % "google-oauth-client-servlet" % "1.20.0",
"com.google.apis" % "google-api-services-calendar" % "v3-rev120-1.19.1",
"com.google.inject" % "guice" % "3.0")
这是异常日志
DirectUserSignUpTest:
[info] user signed up
[info] Exception encountered when attempting to run a suite with class name: endtoendtesting.directusertests.DirectUserSignUpTest *** ABORTED ***
[info] java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V
[info] at io.restassured.internal.util.MatcherErrorMessageBuilder.buildError(MatcherErrorMessageBuilder.java:19)
[info] at io.restassured.internal.util.MatcherErrorMessageBuilder$buildError.call(Unknown Source)
[info] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
[info] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
[info] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
[info] at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validateStatusCodeAndStatusLine(ResponseSpecificationImpl.groovy:536)
[info] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[info] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[info] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[info] at java.lang.reflect.Method.invoke(Method.java:498)
请帮助说明导致异常的原因
将依赖项显式添加到Hamcrest
libraryDependencies ++= Seq(filters,
"org.hamcrest" % "hamcrest-core" % "1.3",
"org.hamcrest" % "hamcrest-library" % "1.3",
...
null
**编程对象,Settings.UseJavaCP.Value=true。 Build.Scala
这个bug似乎是一个递归bug,公司要求工作表,而工作表又要求公司,这……你就明白了。我已经在互联网和堆栈溢出中搜索了这个问题,我发现了错误发生的原因,但解决方案始终是编写自己的解析器或使用flexjson或其他方法。我只是想知道是否有解决办法,这必须是因为游戏很受欢迎,人们肯定会在一次操作中获取帖子和评论,或者不是吗? 必须有一个解决方案,不需要替换掉json解析器或编写自己的解析器。 公司.j
问题内容: 我正在尝试使用Play的自动绑定功能,但没有成功。我正在Eclipse 4.4 Luna上用Java开发。 这是我的表格: 这是我的课程“用户”: 这是我的控制器: 我不知道为什么自动绑定值不起作用。我已经确保表单中的字段名称与类中的属性名称相对应,这对于表单绑定起作用就足够了,对吗? 我正在使用Eclipse Luna,并且关闭了自动项目构建(我从控制台手动进行)。我知道有时候Ecl
问题内容: 我已经开发了一个Spring / JPA应用程序: 服务,存储库和域层即将完成 。 该 所缺的只是层是网络层 。我正在考虑将Playframework 2.0用于Web层,但不确定是否可以 在Playframework 2.0类中注入/使用spring bean 。 这可能吗?如果可以,怎么办? 问题答案: 您可以。已针对Play 2.5.x更新: https://github.com
本文向大家介绍在Python的Django框架中创建语言文件,包括了在Python的Django框架中创建语言文件的使用技巧和注意事项,需要的朋友参考一下 当你标记了翻译字符串,你就需要写出(或获取已有的)对应的语言翻译信息。 这里就是它如何工作的。 地域限制 Django不支持把你的应用本地化到一个连它自己都还没被翻译的地域。 在这种情况下,它将忽略你的翻译文件。 如果你想尝试这个并且Djang