(Referenz) Bücher, die Sie studieren https://www.amazon.co.jp/Play-Framework-2%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-Java%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%ABWeb%E9%96%8B%E7%99%BA-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798133922/ref=cm_cr_srp_d_product_top?ie=UTF8
Im Play Framework werden standardmäßig Tests mit einer Testbibliothek namens JUnit vorbereitet.
・ApplicationTest.java → Tests für das Anwendungsverhalten
・IntegrationTest.java → Eine Reihe kleiner Tests, die integriert sind
import com.fasterxml.jackson.databind.JsonNode;
import org.junit.*;
import play.mvc.*;
import play.test.*;
import play.data.DynamicForm;
import play.data.validation.ValidationError;
import play.data.validation.Constraints.RequiredValidator;
import play.i18n.Lang;
import play.libs.F;
import play.libs.F.*;
import static play.test.Helpers.*;
import static org.fest.assertions.Assertions.*;
/**
*
* Simple (JUnit) tests that can call all parts of a play app.
* If you are interested in mocking a whole application, see the wiki for more details.
*
*/
public class ApplicationTest {
@Test
public void simpleCheck() {
int a = 1 + 1;
assertThat(a).isEqualTo(2);
}
@Test
public void renderTemplate() {
Content html = views.html.index.render("Your new application is ready.");
assertThat(contentType(html)).isEqualTo("text/html");
assertThat(contentAsString(html)).contains("Your new application is ready.");
}
}
Es werden mehrere Pakete importiert, aber die minimal erforderlichen Pakete sind wie folgt.
import org.junit.*;
import play.mvc.*;
import static play.test.Helpers.*;
import static org.fest.assertions.Assertions.*;
Der Code bestätigt, dass 1 + 1 2 ist, aber das ist nicht das Ziel. ** Definieren Sie hier eine Methode und überprüfen Sie den Wert mit assertThat! ** meint. Informationen zum Betrieb von assertThat (a) .isEqualTo (2) finden Sie im folgenden Artikel. (Referenz) https://qiita.com/naotawool/items/6512ecbe2fd006dacfd2
@Test
public void simpleCheck() {
int a = 1 + 1;
assertThat(a).isEqualTo(2);
}
Überprüfen des gerenderten Werts.
@Test
public void renderTemplate() {
Content html = views.html.index.render("Your new application is ready.");//①
assertThat(contentType(html)).isEqualTo("text/html");//②
assertThat(contentAsString(html)).contains("Your new application is ready.");//③
}
· Inhaltstyp → Gibt den Inhaltstyp als Zeichenfolge zurück
・ ContentAsString → Extrahieren Sie den Text des Inhalts aus dem Inhalt und geben Sie ihn als Zeichenfolge zurück
・ IsEqualTo ("text / html") → Überprüfen Sie, ob es sich um Text / HTML handelt. Was ist Text / HTML? (Referenz) http://wa3.i-3-i.info/word15789.html
Der Verarbeitungsablauf ist
① Rendern ↓ ② Überprüfen Sie, ob der Texttyp HTML ist ↓ ③ Überprüfen Sie den Inhalt
import org.junit.*;
import play.mvc.*;
import play.test.*;
import play.libs.F.*;
import static play.test.Helpers.*;
import static org.fest.assertions.Assertions.*;
import static org.fluentlenium.core.filter.FilterConstructor.*;
public class IntegrationTest {
/**
* add your integration test here
* in this example we just check if the welcome page is being shown
*/
@Test
public void test() {
running(testServer(3333, fakeApplication(inMemoryDatabase())), HTMLUNIT, new Callback<TestBrowser>() {
public void invoke(TestBrowser browser) {
browser.goTo("http://localhost:3333");//①
assertThat(browser.pageSource()).contains("Your new application is ready.");//②
}
});
}
}
Schreiben Sie den Testprozess in die Methode invoke in der Testmethode! Die ausgeführte Anweisung lautet wie folgt
running(testServer(・ ・ ・),HTMLUNIT,new Callback(){・ ・ ・})
Das Argument der laufenden Methode ist · TestServer-Instanz ・ WebDriver angeben -Callback-Instanz für einen Rückruf, der die Verarbeitung nach der Ausführung durchführt Ich verstehe, dass das so etwas ist.
public void invoke(TestBrower browser){}
① Greifen Sie mit der goTo-Methode auf die Argument-URL zu (2) Holen Sie sich die Seitenquelle mit browser.pageSource (). Dadurch wird es mit der im TestBrowser-Browser angezeigten Zeichenfolge verglichen
Recommended Posts