Ich habe einen einfachen Testcontroller.Gibt das Vorhandensein eines Textes in der vom Controller zurückgegebenen Ansichtsdatei an.
package taglibexample
class HelloWorldController {
def index() {
render(view: "index", model: [id:2])
}
}
Die Ansicht, dass der obige Controller macht wie folgt:
<!doctype html>
<html>
<head>
<title> Hello World </title>
</head>
<body>
<h1> Hello World! ${ id } </h1>
</body>
</html>
Nun, ich mag diese Controller-Methode testen und auf das Vorhandensein von dem Text „Hallo Welt 2“ behaupten. Der Code, den ich bisher haben und das hat nicht funktioniert wie folgt dar:
package taglibexample
import static org.junit.Assert.*
import org.junit.*
class HelloTests {
def controller
@Before
void setUp() {
controller = new HelloWorldController()
}
@Test
void testSomething() {
def model = controller.index()
assertTrue controller.response.getContentAsString().contains("Hello World! 2")
}
}
, wie ich dies zu erreichen kann? Ich schätze jede Hilfe! Vielen Dank!
Sorry ich finde nur Geltendmachung von Ansichtsnamen oder Asserting Modelle von Controllern zurückgegeben. Ich möchte das Vorhandensein eines Textes in der vom Controller zurückgegebenen Ansichtsdatei bestätigen. Ich benutze Grails 2.2. – kofhearts
Alle Dokumentationen zeigen, wie dies genau gemacht wird. Ich habe meine Antwort aktualisiert –
Ich denke nicht, dass dies eine gute Antwort ist. Der Test, den Sie oben zitiert haben, wird für das in der Frage beschriebene Szenario nicht funktionieren. Der oben genannte Test würde funktionieren, wenn der Controller etwas wie 'render' hallo' machen würde. –