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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
