2015-09-02 17 views
13

kullanarak Playframework birim testlerindeki kılavuz modülleri nasıl geçersiz kılar PlayFramework'da denetleyicim için işlev testi yazmak istiyorum. Bunu yapmak için bazı sınıfların uygulanmasını yapmak istiyorum.ScalaTest

burada spec2 kullanarak bunu nasıl güzel bir örnek bulundu: http://www.innovaedge.com/2015/07/01/how-to-use-mocks-in-injected-objects-with-guiceplayscala/

Ama FakeApplication kullanır OneAppPerSuite özelliği ile scala testini kullanıyorum. https://www.playframework.com/documentation/2.4.x/ScalaFunctionalTestingWithScalaTest

Sorun i GuiceApplicationBuilder içine yakalamak ve sahte uygulanması ile bazı ciltleri geçersiz kılmak için bir yol bulmuş değil ki: İşte belgeleri bulunmaktadır.

case class FakeApplication(
    override val path: java.io.File = new java.io.File("."), 
    override val classloader: ClassLoader = classOf[FakeApplication].getClassLoader, 
    additionalPlugins: Seq[String] = Nil, 
    withoutPlugins: Seq[String] = Nil, 
    additionalConfiguration: Map[String, _ <: Any] = Map.empty, 
    withGlobal: Option[play.api.GlobalSettings] = None, 
    withRoutes: PartialFunction[(String, String), Handler] = PartialFunction.empty) extends Application { 

private val app: Application = new GuiceApplicationBuilder() 
    .in(Environment(path, classloader, Mode.Test)) 
    .global(withGlobal.orNull) 
    .configure(additionalConfiguration) 
    .bindings(
    bind[FakePluginsConfig] to FakePluginsConfig(additionalPlugins, withoutPlugins), 
    bind[FakeRouterConfig] to FakeRouterConfig(withRoutes)) 
    .overrides(
    bind[Plugins].toProvider[FakePluginsProvider], 
    bind[Router].toProvider[FakeRouterProvider]) 
    .build 

yüzden bana GuiceApplicationBuilder içine yakalamak ve bağlantıları geçersiz kılmak için bir yolu yoktur:

İşte play.api.test den FakeApplication uygulama vardır.

Soru sözleri biraz aptalca görünüyorsa, o kadar üzülüyorsunuz ki, o kadar çok üzgünüm. Teşekkürler!

cevap

-1

Muhtemelen uygulama ile birlikte FakeApplication'ı desteklemeyen eski bir ScalaTestPlus sürümü kullanıyorsunuzdur. Play docs (Oynat 2.4) 'de kütüphane sürümü "1.4.0-M3", ancak "1.4.0" olmalıdır.

İlgili konular