У меня проблема с зависимостями, которые, по-видимому, истекают кровью между тестами, что приводит к сбою большинства тестов. В каждом случае отладка показывает, что первое приложение, созданное в тестовом классе, используется для всех тестов, и это приводит к сбоям.
Я пробовал добавлять isolated
и sequential
, но это не дало результата.
Я делаю что-то удивительно глупое или слегка глупое?
Например, вот SubjectNotPresentTest.scala
class SubjectNotPresentTest extends AbstractViewTest {
"show constrained content when subject is not present" in new WithApplication(testApp(handler())) {
val html = subjectNotPresentContent(FakeRequest())
private val content: String = Helpers.contentAsString(html)
content must contain("This is before the constraint.")
content must contain("This is protected by the constraint.")
content must contain("This is after the constraint.")
}
"hide constrained content when subject is present" in new WithApplication(testApp(handler(subject = Some(user())))) {
val user = new User("foo", Scala.asJava(List.empty), Scala.asJava(List.empty))
val html = subjectNotPresentContent(FakeRequest())
private val content: String = Helpers.contentAsString(html)
content must contain("This is before the constraint.")
content must not contain("This is protected by the constraint.")
content must contain("This is after the constraint.")
}
}
GuiceApplicationBuilder используется в родительский класс используется для создания приложения для тестирования.
val app = new GuiceApplicationBuilder()
.bindings(new DeadboltModule())
.bindings(bind[HandlerCache].toInstance(LightweightHandlerCache(handler)))
.overrides(bind[CacheApi].to[FakeCache])
.in(Mode.Test)
.build()
Вы можете увидеть пример сбоев по адресу https://travis-ci.org/schaloner/deadbolt-2-scala/builds/66369307#L805
Все тесты можно найти по адресу https://github.com/schaloner/deadbolt-2-scala/tree/master/code/test/be/objectify/deadbolt/scala/views
Спасибо, Стив