Поточно-ориентированное свойство List

Большую часть времени я тестирую Сервлеты и JSP's через 'Интеграционные тесты', а не чистые Модульные тесты. Существует большое количество дополнений для JUnit/TestNG, доступного включая:

  • HttpUnit (самый старый и самый известный, очень низкий уровень, который может быть хорошим или плохим в зависимости от Ваших потребностей)
  • HtmlUnit (более высокий уровень, чем HttpUnit, который лучше для многих проектов)
  • JWebUnit (находится сверх других инструментов тестирования и пытается упростить их - тот, которого я предпочитаю)
  • WatiJ и Селен (используют Ваш браузер, чтобы сделать тестирование, которое является большим количеством тяжеловеса, но реалистичный)

Это - тест JWebUnit для простого Сервлета Обработки заказов, который обрабатывает вход от формы 'orderEntry.html'. Это ожидает идентификатор клиента, имя клиента и один или несколько объектов порядка:

public class OrdersPageTest {
    private static final String WEBSITE_URL = "http://localhost:8080/demo1";

    @Before
    public void start() {
        webTester = new WebTester();
        webTester.setTestingEngineKey(TestingEngineRegistry.TESTING_ENGINE_HTMLUNIT);
        webTester.getTestContext().setBaseUrl(WEBSITE_URL);
    }
    @Test
    public void sanity() throws Exception {
        webTester.beginAt("/orderEntry.html");
        webTester.assertTitleEquals("Order Entry Form");
    }
    @Test
    public void idIsRequired() throws Exception {
        webTester.beginAt("/orderEntry.html");
        webTester.submit();
        webTester.assertTextPresent("ID Missing!");
    }
    @Test
    public void nameIsRequired() throws Exception {
        webTester.beginAt("/orderEntry.html");
        webTester.setTextField("id","AB12");
        webTester.submit();
        webTester.assertTextPresent("Name Missing!");
    }
    @Test
    public void validOrderSucceeds() throws Exception {
        webTester.beginAt("/orderEntry.html");
        webTester.setTextField("id","AB12");
        webTester.setTextField("name","Joe Bloggs");

        //fill in order line one
        webTester.setTextField("lineOneItemNumber", "AA");
        webTester.setTextField("lineOneQuantity", "12");
        webTester.setTextField("lineOneUnitPrice", "3.4");

        //fill in order line two
        webTester.setTextField("lineTwoItemNumber", "BB");
        webTester.setTextField("lineTwoQuantity", "14");
        webTester.setTextField("lineTwoUnitPrice", "5.6");

        webTester.submit();
        webTester.assertTextPresent("Total: 119.20");
    }
    private WebTester webTester;
}

107
задан dsolimano 2 June 2012 в 04:28
поделиться