首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试PlayFramework控制器上的“未找到路由器”

单元测试PlayFramework控制器上的“未找到路由器”
EN

Stack Overflow用户
提问于 2015-07-15 22:51:27
回答 2查看 1.8K关注 0票数 0

我在尝试按照播放框架文档步骤对控制器进行单元测试时遇到了一些问题。

我使用java模板创建了一个新应用程序。将生成的ApplicationTest替换为docs的ApplicationTest,纠正与错误包相关的编译错误--但是传递给FakeApplication (ImmutableMap.of("play.http.router", "javaguide.tests.Routes"))的additionalConfigurations仍然有问题--我在javaguide.tests.Routes上尝试过许多不同的名称和目录,但始终会出现以下错误。

代码语言:javascript
复制
[error] 
[error] 1) Error in custom provider, Configuration error: Configuration error[Router not found: javaguide.tests.Routes]
[error]   while locating play.api.test.FakeRouterProvider
[error]   while locating play.api.routing.Router
[error] 
[error] 1 error, took 2.931 sec
[error]     at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025)
[error]     at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
[error]     at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:321)
[error]     at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:316)
[error]     at play.api.Application$class.routes(Application.scala:111)
[error]     at play.api.test.FakeApplication.routes(Fakes.scala:197)
[error]     at play.api.Play$.start(Play.scala:89)
[error]     at play.api.Play.start(Play.scala)
[error]     at play.test.Helpers.start(Helpers.java:450)
[error]     at play.test.WithApplication.startPlay(WithApplication.java:44)
[error]     ...
[error] Caused by: Configuration error: Configuration error[Router not found: javaguide.tests.Routes]
[error]     at play.api.Configuration$.configError(Configuration.scala:178)
[error]     at play.api.Configuration.reportError(Configuration.scala:829)
[error]     at play.api.routing.Router$$anonfun$load$2.apply(Router.scala:67)
[error]     at play.api.routing.Router$$anonfun$load$2.apply(Router.scala:66)
[error]     at scala.Option.map(Option.scala:146)
[error]     at play.api.routing.Router$.load(Router.scala:66)
[error]     at play.api.inject.RoutesProvider.get$lzycompute(BuiltinModule.scala:66)
[error]     at play.api.inject.RoutesProvider.get(BuiltinModule.scala:63)
[error]     at play.api.test.FakeRouterProvider.get$lzycompute(Fakes.scala:259)
[error]     at play.api.test.FakeRouterProvider.get(Fakes.scala:259)
[error]     at play.api.test.FakeRouterProvider.get(Fakes.scala:258)
[error]     at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
[error]     at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
[error]     at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
[error]     at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
[error]     at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
[error]     at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
[error]     at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
[error]     ... 44 more
[error] Failed: Total 21, Failed 1, Errors 0, Passed 19, Skipped 1

有没有人知道我遗漏了什么,或者能分享一个github项目的引用,这个项目有这种测试吗?

如果有帮助的话,一个Play框架应用程序的剖析:https://playframework.com/documentation/2.4.x/Anatomy

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-20 19:33:50

我昨天也面临着同样的问题,我刚刚回答了我自己的问题,请看看这个问题的答案是否有用:播放2.4:如何在单元测试期间禁用路由文件加载?

票数 1
EN

Stack Overflow用户

发布于 2015-07-16 10:01:51

您能检查一下您是否在包中指定了您的路线文件,它需要的位置是ie。javaguide.tests

javaguide.tests.routes:

代码语言:javascript
复制
GET  /          controllers.Application.index()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31442594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档