Java 播放2.4.6,为测试中的字节码增强配置生成设置
我将PlayFramework2.4.6与Ebean和Java一起使用 运行测试时,无法设置任何字段的值。我认为字节码增强(自动生成getter/setter)不起作用 我的测试(保持冷静,框架应该将getter/setter放在“name”中): 我尝试使用Java 播放2.4.6,为测试中的字节码增强配置生成设置,java,testing,playframework,ebean,playframework-2.4,Java,Testing,Playframework,Ebean,Playframework 2.4,我将PlayFramework2.4.6与Ebean和Java一起使用 运行测试时,无法设置任何字段的值。我认为字节码增强(自动生成getter/setter)不起作用 我的测试(保持冷静,框架应该将getter/setter放在“name”中): 我尝试使用save()而不是update(),但没有得到想要的结果 试验失败;输出: [error] Test IntegrationTest.createAndUpdate failed: expected:<[another name]&g
save()
而不是update()
,但没有得到想要的结果
试验失败;输出:
[error] Test IntegrationTest.createAndUpdate failed: expected:<[another name]> but was:<[Spongebob Squarepants]>, took 0.228 sec
你发布的两个参考资料都非常过时。你应该。请特别注意有关的部分。此外,在使用时还存在一些限制: 增强器查找Java类上的所有字段:
- 公开
- 它们是非静态的
- 是非最终的
Usuario
中的属性是否满足这些条件
编辑后:
我已将您的find
声明更改为以下行:
public static Find<Long, Usuario> find = new Finder<>(Usuario.class);
这是build.sbt
的内容:
name := """test"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
"junit" % "junit" % "4.12" % Test
)
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-q")
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "2.0.0")
以及项目/plugins.sbt
的内容:
name := """test"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
"junit" % "junit" % "4.12" % Test
)
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-q")
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "2.0.0")
你发布的两个参考资料都非常过时。你应该。请特别注意有关的部分。此外,在使用时还存在一些限制: 增强器查找Java类上的所有字段:
- 公开
- 它们是非静态的
- 是非最终的
Usuario
中的属性是否满足这些条件
编辑后:
我已将您的find
声明更改为以下行:
public static Find<Long, Usuario> find = new Finder<>(Usuario.class);
这是build.sbt
的内容:
name := """test"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
"junit" % "junit" % "4.12" % Test
)
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-q")
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "2.0.0")
以及项目/plugins.sbt
的内容:
name := """test"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
"junit" % "junit" % "4.12" % Test
)
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-q")
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "2.0.0")
非常感谢。我查过我的课了。它和文档状态一样,除了用于访问Finder实例的静态字段(但我从Play guide中获取了该字段的代码)之外,它是否工作?如果没有,请发布Usuario类的代码。不幸的是,它不起作用。该类已经如文档所示。请发布代码,以便我们可以查看它是否与增强相关。几乎我所有的配置都与您的类似。只有
build.sbt
中的testOptions
缺失;但是我的测试仍然失败:(我有一些额外的配置使它在Eclipse中工作。当然,我会创建一个新的clean项目,然后再试一次。谢谢。我已经检查了我的类。它与文档状态一样,除了用于访问Finder实例的静态字段(但我从Play guide中获取了该字段的代码)。它是否工作?如果没有,请发布Usuario类的代码。不幸的是,它没有工作。该类已经如文档所示。请发布代码,以便我们可以查看它是否与增强相关。几乎我的所有配置都与您的配置一样。只有build.sbt
中的测试选项缺失;但我的测试仍在失败:(我有一些额外的配置以使它在Eclipse中工作。当然,我会创建一个新的clean项目,然后再试一次。除了您的find
声明(我将其更改为static
以通过编译)之外,一切都按照我的预期工作。您使用的是哪个数据库?您的ebean.default
配置如何打开(位于conf/application.conf
文件)?很抱歉,查找字段从一开始就是静态的。我犯了一个错误,但我将编辑描述。除了您的find
声明(我将其更改为static
以通过编译)之外,所有操作都按照我的预期进行。您使用的是哪个数据库?您的ebean.default
配置如何(位于conf/application.conf
文件)?很抱歉,find字段从一开始就是静态的。我犯了一个错误,但我将编辑描述。