Vorrei poter utilizzare le regole JUnit come TemporaryFolder
o altri TestRule
s che abbiamo già sviluppato internamente. Qual è il miglior metodo per farlo? Sono a conoscenza di JUnitSuite ma non sembra raccogliere l'annotazione @Rule
. Mi piacerebbe comunque utilizzare una diversa suite ScalaTest.Utilizzo di JUnit @Rule con ScalaTest (ad esempio TemporaryFolder)
Quindi le mie domande sono:
- sono regole JUnit supportato da un completo ScalaTest?
- In caso contrario, c'è una libreria là fuori che renderebbe possibile l'uso di Junit
TestRule
? - In caso negativo, come utilizzare JUnit
TestRule
s nei test Scala? - Oppure esiste un approccio più specifico di Scala per la descrizione di ciò che è
TemporaryFolder
o, ad esempio, di Stefan Birkner System Rules?
Ecco quello che ho provato con 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
}
}
Ah, grazie, che funziona :). Creazione mancata di più istanze 'TemporaryFolder'. Alla fine, abbiamo optato per la soluzione mixable impilabile in modo che non venisse bloccato con JUnitSuite. Comunque, è bello sapere che '@ Rule' può essere supportato in modo più scalare. – Mifeet
Felice di poter aiutare :-) –