scala – 在Play 2.6中对控制器进行单元测试
发布时间:2020-12-16 10:06:15 所属栏目:安全 来源:网络整理
导读:尝试在 Scala中的Play 2.6中测试控制器时,我得到一个空指针异常. 这是对OK响应的测试: class ApplicationControllerSpec extends PlaySpecwith MockitoSugar with ScalaFutures { val mockOrchestrator = mock[ApplicationOrchestrator] val mockCC = mock[
尝试在
Scala中的Play 2.6中测试控制器时,我得到一个空指针异常.
这是对OK响应的测试: class ApplicationControllerSpec extends PlaySpec with MockitoSugar with ScalaFutures { val mockOrchestrator = mock[ApplicationOrchestrator] val mockCC = mock[ControllerComponents] val controller = new ApplicationController(mockOrchestrator,mockCC) val method = controller.home()(FakeRequest()) assert(status(method) == 200) } 这是我正在测试的控制器: class ApplicationController @Inject() (orchestrator: ApplicationOrchestrator,cc: ControllerComponents) extends AbstractController(cc) with I18nSupport { def home(): Action[AnyContent] = Action { implicit request: RequestHeader => //line 29 Ok(views.html.home()) } } 该错误看起来与隐式请求相关联,但我找不到解决方案. 日志输出是: 抛出了java.lang.NullPointerException. 解决方法
NPE是因为你正在使用mock [ControllerComponents].只需用stubControllerComponents()替换它,事情将按预期工作.
当您调用方法或访问未正确模拟的字段时,NPE会在测试中出现. 我猜你错过了读这个. https://www.playframework.com/documentation/2.6.x/Highlights26#StubControllerComponents (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |