Quiero escribir una prueba de Spek en Kotlin. La prueba debería leer un archivo HTML de la src/test/resources
carpeta. ¿Cómo hacerlo?
class MySpec : Spek({
describe("blah blah") {
given("blah blah") {
var fileContent : String = ""
beforeEachTest {
// How to read the file file.html in src/test/resources/html
fileContent = ...
}
it("should blah blah") {
...
}
}
}
})
this::class.java.classLoader.getResource("/html/file.html").readText()
/
en una de ellas, que debe eliminarse en la otra):this::class.java.getResource("/html/file.html").readText()
ythis::class.java.classLoader.getResource("html/file.html").readText()
val fileContent = javaClass.getResource("/html/file.html").readText()
hace el trabajo aún más cortootra solución ligeramente diferente:
fuente
this
pieza no me funcionó. Por eso recomiendo lo siguiente:fun String.asResource(): URL? = object {}.javaClass.getResource(this)
this
en el ejemplo anterior se refiere al objeto de cadena.No tengo idea de por qué esto es tan difícil, pero la forma más sencilla que he encontrado (sin tener que referirme a una clase en particular) es:
Y luego pasar una URL absoluta, p. Ej.
fuente
{}
requiere? ¿Por qué no simplementejavaClass.getResource(path).readText()
?Una solución ligeramente diferente:
fuente
/src/test/resources
,this.javaClass.getResource("/<test input filename>")
funcionó como se esperaba. Gracias por la solución anterior.fuente
Kotlin + Spring way:
fuente
fuente
Usando la clase de recursos de la biblioteca de Google Guava :
fuente
Puede encontrar útil la clase File:
fuente
Esta es la forma en que prefiero hacerlo:
fuente