Я только недавно начал изучать модульное тестирование и хотел бы реализовать его на моей веб-странице (используя JPA, JSP и MySQL). Я могу понять, как я могу использовать JUnit для тестирования простых вещей, таких как извлечение пользовательской информации из базы данных, но не могу понять, как автоматизировать проверку чего-то вроде входа в систему, когда поле имени пользователя пустое.Unit Testing for GUI
ответ
Если вы хотите провести тестирование Unit, то вы должны определить, какое устройство вы хотите проверить. Допустим, у вас есть SecurityService с методом входа в систему, который принимает имя пользователя и пароль и возвращает логическое значение, указывающее, вошел ли пользователь в систему или нет. Тогда вы можете просто передать null, чтобы пользователь мог проверить, что он возвращает false.
Если у вас есть javascript, который не позволяет пользователю нажимать кнопку отправки, когда имя пользователя пуста, тогда у вас будет запись какого-либо javascript-модуля для этой части, так как это другой блок.
Главное, пытаясь написать тестируемое веб-приложение с Java, которое я нашел, это убедиться, что у вас очень мало логики в коде уровня презентации. Удостоверьтесь, что когда пользователь нажимает кнопку, которую вы немедленно отправляете что-то в «Сервис», чтобы выполнить эту работу. Таким образом, вы можете протестировать сервис в изолированном слое презентации.
Вот пример кода для проверки SecurityService, о котором я упоминал.
public class SecurityService
{
public boolean login(String username, String password)
{
//Put your logic here
return false;
}
}
Вот тест JUnit
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class SecurityServiceTest
{
private SecurityService securityService;
@Before
public void setUp()
{
securityService = new SecurityService();
//Mock any database access you need here, like DAOs.
//example: securityService.setUserDAO(myMockUserDAO);
}
@Test
public void loginWithNull_False()
{
assertFalse(securityService.login(null, "123"));
}
}
- 1. Unit Testing the Web GUI
- 2. C# Unit Testing for Generic method
- 3. Unit Testing for Java 8 Lambdas
- 4. Unit Testing AS3 Code for Flash
- 5. Qt Unit Testing
- 6. unit testing a TabbedPropertySection
- 7. Java Unit Testing
- 8. unit testing Coverage Issue
- 9. Rihno-mocks Unit Testing
- 10. Unit Testing Mvc6 TagHelpers
- 11. Unit-testing iPhone rotation
- 12. Unit Testing - Spring
- 13. unit testing mock injection
- 14. Django - Unit Testing AdminForm
- 15. Unit Testing - обновленная модель
- 16. GUI Testing
- 17. Unit Testing Quartz.net Execute()
- 18. Unit Testing RIA Services
- 19. C++ Unit Testing Libraries
- 20. Unit-testing ngResource $ save
- 21. NLog and Unit Testing
- 22. Android gps unit testing
- 23. Unit Testing Doctrine ODM
- 24. unit testing xsd
- 25. Unit-testing конструктора
- 26. VBA Unit Testing
- 27. Unit Testing WCF Client
- 28. Unit Testing Swagger Output
- 29. Unit Testing FindAsync
- 30. Unit Testing Слушатели событий
А зачем вам это нужно ** ** блок тестирования? Я имею в виду, что у вас есть уровень представления (JSP), уровень обслуживания, уровень сохранения (JPA + MySQL), все они участвуют в процессе входа в систему. Вы можете проверять данные с помощью javascript в JSP, или на службе, или даже с помощью ограничений базы данных. Какой блок из них вы хотите проверить? – user3707125
Хм, я думаю, что я действительно хочу, чтобы быстро выполнить автоматическое тестирование в одном месте, например, с помощью JUnit Java, вместо того, чтобы вручную просматривать каждую веб-страницу, чтобы проверить, не сломалось ли что-либо. – Entity
Если вы тестируете все слои (презентация, обслуживание, персистентность), а не только то, как ведет себя ваш 'html' +' js', то это интеграционный тест или даже сквозной, и вам нужно использовать соответствующие инструменты и Юнит не среди них. – user3707125