kontrolörü enjekte Böylece 2.4 belgeleri (https://playframework.com/documentation/2.4.x/ScalaTestingWithScalaTest#Unit-Testing-Controllers) Play göre, kontrol cihazı, buÇalma/Scala testi
gibi çalışması için bir test için, butrait ExampleController {
this: Controller =>
def index() = Action {
Ok("ok")
}
}
object ExampleController extends Controller with ExampleController
gibi bir özellik olarak ayarlanabilir olmalıdır Ben Guice bağımlılık enjeksiyon kullanılarak ve 2.4 belgelerine Çal göre ediyorum ancak
class ExampleControllerSpec extends PlaySpec with Results {
class TestController() extends Controller with ExampleController
"Example Page#index" should {
"should be valid" in {
//test code
}
}
}
, (https://playframework.com/documentation/2.4.x/ScalaDependencyInjection) benim denetleyicisi şöyle görünür:
@Singleton
class ExampleController @Inject() (exampleService: IExampleService) extends Controller {
def index() = Action {
Ok("")
}
}
Denetleyici artık bir özellik olmadığından ve bunu şu şekilde test edemediğimden: with ExampleController
, testi yukarıda nasıl çalıştırırım?
Teşekkür kullanarak Çal test ve Guice hakkında daha fazla bilgi bulabilirsiniz: Denetleyiciniz zaten bu miras olarak da,
extends Controller
ortadan kaldırabilir. Bu arada, servisin (kontrolöre enjekte edilen) aynı teste nasıl enjekte edileceği hakkında herhangi bir fikrin var mı? – CaballeroHizmetin dışına çıkarım, örneğin: ScalaMock kullanarak. – jazmit
Anladığım gibi, bir TestController sınıfı oluşturmanın ve test etmenin faydası ne olurdu? – gun