Podążam za przykładami testowania Scali, używając specyfikacji Specs2 z oficjalnej dokumentacji Play. Zauważyłem, że używają oni WithApplication
założyć fałszywy wniosek do przetestowania przeciw, z Clode jak następuje:Zagraj w Famework 2 - Scala - Rozpocznij jedną aplikację dla zestawu testowego
"something" should {
"do X" in new WithApplication { /* ... */ }
"do Y" in new WithApplication { /* ... */ }
"do Z" in new WithApplication { /* ... */ }
}
To jest w porządku i wszystko, ale jest problem, że mam to, że ponoszą koszty moja aplikacja uruchamia się za każdym razem, gdy tak się dzieje. To niekoniecznie jest "szybkie" lub przynajmniej niewystarczająco szybkie, gdy zestaw testowy powiększy się do rozsądnego rozmiaru. Próbowałem robić takie rzeczy jak:
val app = FakeApplication()
"something" should {
"do X" in new WithApplication(app) { /* ... */ }
"do Y" in new WithApplication(app) { /* ... */ }
"do Z" in new WithApplication(app) { /* ... */ }
}
i
"something" should {
val app = FakeApplication()
Helpers.running(app) {
"do X" in { /* ... */ }
"do Y" in { /* ... */ }
"do Z" in { /* ... */ }
}
}
Pierwszy wydaje się działać dla pierwszego badania, a potem narzeka na problemy z połączeniem db na późniejszych testów. Zgaduję, że coś tu się kończy albo coś (nie wiem co).
Drugi nie działa, ponieważ narzeka, że nie ma uruchomionej aplikacji, co do której nie jestem pewien.
Każda pomoc jest bardzo doceniana. Dzięki!