Я хотел был бы иметь возможность использовать правила JUnit, такие как TemporaryFolder
или другие TestRule
s, которые мы уже разработали сами. Каков наилучший способ для этого? Я знаю JUnitSuite, но, похоже, он не подхватил аннотацию @Rule
. Я бы хотел использовать другой набор ScalaTest.Использование JUnit @Rule с ScalaTest (например, TemporaryFolder)
Так что мои вопросы:
- Поддерживаются JUnit правила по ScalaTest костюм?
- Если нет, есть ли библиотека, которая могла бы использовать с помощью Junit
TestRule
s? - Если нет, то как использовать JUnit
TestRule
s в тестах Scala? - Или существует более подходящий подход, основанный на применении Scala для обеспечения того, что
TemporaryFolder
, или, например, System Rules Стефана Биркнера?
Вот что я пытался с JUnitSuite
:
class MyTest extends JUnitSuite {
//@Rule
//val temporaryFolder = new TemporaryFolder() // throws java.lang.Exception: The @Rule 'temporaryFolder' must be public.
@Rule
def temporaryFolder = new TemporaryFolder()
@Test
def test: Unit = {
assert(temporaryFolder.newFile() !== null) // java.lang.IllegalStateException: the temporary folder has not yet been created
}
}
Ах, спасибо, что работает :). Отсутствует создание нескольких экземпляров 'TemporaryFolder'. В конце концов, мы пошли со сложным решением mixins, чтобы мы не запирались с JUnitSuite. Но в любом случае, хорошо знать, что '@ Rule' может поддерживаться в scalatest. – Mifeet
Рад, что я мог бы помочь :-) –