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!