簡體   English   中英

無法存根 controller 組件

[英]Unable to stub controller components

The method stubControllerComponents in package play.api.test appears to use same package and object name as a separate dependency which is causing a conflict when I attempt to use stubControllerComponents :

play.api.test.Helpers.stubControllerComponents在以下代碼中找不到:

import java.io.File

import play.api.test
import play.api.mvc._
import javax.inject._
import play.api.Environment
import play.api.mvc.{AbstractController, ControllerComponents}


class CountController @Inject() (cc: ControllerComponents,
                                 env: Environment) extends AbstractController(cc) {

   def getter() = Option(env.classLoader.getResourceAsStream("file.csv"))

}


play.api.Environment(play.api.test.Helpers.stubControllerComponents, Environment.simple())

這個 Helpers 包含我需要stubControllerComponents的方法:

在此處輸入圖像描述

但是這個版本的 class 正在通過import play.api.test

在此處輸入圖像描述

存根播放鏈接: https://www.playframework.com/documentation/2.6.x/Highlights26#StubControllerComponents

構建.sbt:

name := "ddd"

version := "1.0" 

lazy val `ddd` = (project in file(".")).enablePlugins(PlayScala)

resolvers += "scalaz-bintray" at "https://dl.bintray.com/scalaz/releases"

resolvers += "Akka Snapshot Repository" at "https://repo.akka.io/snapshots/"

scalaVersion := "2.12.2"

libraryDependencies ++= Seq( jdbc , ehcache , ws  , guice , specs2 % Test)

unmanagedResourceDirectories in Test <+=  baseDirectory ( _ /"target/web/public/test" )  

我是否需要排除部分依賴項,在這種情況下filters-helpers以使stubControllerComponents可用?

更新:

play.api.test.Helpers.stubControllerComponents未找到:

在此處輸入圖像描述

更新2:

在此處輸入圖像描述

您似乎正在使用暫存文件。 AFAICS,無法將測試 scope 中的依賴項也包含到工作表的類路徑中。

一種解決方法是(暫時)將播放測試工件添加到您的libraryDependencies中。 或者只是創建一個適當的測試文件,它可以正常訪問測試庫。

play.api.test.Helpers.stubControllerComponentsplay-test依賴項提供

libraryDependencies += "com.typesafe.play" %% "play-test" % PlayVersion.current % "test",

這是由在project/plugins.sbt指定的 Play 的sbt 插件間接導入的

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.1")

在項目的build.sbt中明確enablePlugins(PlayScala)之后。

請注意play-test如何開箱即用地test配置,因此它僅在測試類路徑上提供。 如果您希望從IntelliJ Scala Worksheet中引用stubControllerComponents ,請確保在test/目錄中而不是在app/目錄中創建工作表。 這將使 Scala 工作表使用test類路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM