So nach 2.4 Dokumentation spielen (https://playframework.com/documentation/2.4.x/ScalaTestingWithScalaTest#Unit-Testing-Controllers), sollte der Regler als Merkmal wie diese für einen TestPlay/Scala Regler in den Test Injektion
trait ExampleController {
this: Controller =>
def index() = Action {
Ok("ok")
}
}
object ExampleController extends Controller with ExampleController
um einzurichtenden wie diese
zu arbeitenclass ExampleControllerSpec extends PlaySpec with Results {
class TestController() extends Controller with ExampleController
"Example Page#index" should {
"should be valid" in {
//test code
}
}
}
aber ich Guice Dependency Injection mit, und nach 2.4 Dokumentation spielen (https://playframework.com/documentation/2.4.x/ScalaDependencyInjection) mein Controller sieht wie folgt aus:
@Singleton
class ExampleController @Inject() (exampleService: IExampleService) extends Controller {
def index() = Action {
Ok("")
}
}
Da Controller ist nicht mehr ein Merkmal und ich kann es nicht in den Test wie folgt mischen: with ExampleController
, wie mache ich den obigen Test funktionieren?
Dank finden. Übrigens, jede Idee, wie der Service (der in den Controller eingespeist wird) in den gleichen Test injiziert wird? – Caballero
Ich würde den Service ausspionieren, zB: mit ScalaMock. – jazmit
Ich verstehe nicht, was wäre der Vorteil, eine Klasse TestController zu erstellen und zu testen, anstatt den ExampleController direkt zu testen? – gun