continuação começou aqui -> JUnit parte I
Também quero mostrar como o método funciona
Assert.fail(String)
- se esse método for chamado, o teste falhará. Conveniente se outros métodos da classe Assert
não puderem verificar para nós. Digamos que precisamos proibir a aceitação de arquivos new String(“”)
. Vamos tentar fazer isso usando o construtor e desabilitar a passagem name = “” || null, age = 0; Sex = null
. Vamos lá... adicionei campos adicionais para teste
private User user;
private User user1;
private User user2;
private User userNotAdd;
private User userNotAdd1;
e mudei o métodosetUp()
@Before
public void setUp() throws Exception {
user = new User("Eugene", 35, Sex.MALE);
user1 = new User("Marina", 34, Sex.FEMALE);
user2 = new User("Alina", 7, Sex.FEMALE);
userNotAdd = new User("", 0, null);
userNotAdd1 = new User(null, 0, null);
}
e adicionou três métodos de teste
@Test
public void newUser_EMPTY_NAME() {
for (User user : User.getAllUsers()){
if (user.getName() != null && user.getName().isEmpty()) {
Assert.fail("Попытка создания пользователя с пустым именем");
}
}
}
@Test
public void newUser_AGE_ZERO() {
for (User user : User.getAllUsers()) {
if (user.getAge() <= 0) {
Assert.fail("Попытка создания пользователя c не допустимым возрастом");
}
}
}
@Test
public void newUser_SEX_NO_NULL() {
for (User user : User.getAllUsers()) {
if (user.getSex() == null) {
Assert.fail("Попытка создания пользователя с указанием пола = null");
}
}
}
Nos testes, percorremos a lista de usuários adicionados e verificamos se há algum dado inválido. Executamos os testes em massa e vemos a seguinte imagem... Você pode ver que nossos testes para o construtor estão quebrados e mais alguns testes também foram capturados. Agora precisamos alterar o construtor para que ele não adicione um usuário com parâmetros inválidos na lista de usuários, vamos fazer assim:
public User(String name, int age, Sex sex) {
if (name != null && !name.isEmpty() && age > 0 && sex != null){
this.name = name;
this.age = age;
this.sex = sex;
if (!hasUser()) {
countId++;
this.id = countId;
allUsers.put(id, this);
}
}
}
Executamos nossos testes e vemos que tudo está lindo. Resumindo, JUnit é uma excelente ferramenta para cobrir seu código com testes. JUnit funcionará ainda melhor em conjunto com Maven , ao construir o projeto, o Maven definitivamente executará todos os testes e então construirá nosso projeto finalizado, mas se os testes falharem, o projeto não será construído e saberemos os motivos, e será mais fácil descobrir onde exatamente ocorreu a avaria. A segunda vantagem do JUnit é o caso da Refatoração , os testes JUnit nos ajudarão a garantir que a lógica do nosso programa não quebre. E em grandes projetos, a vida não é possível sem um sistema de testes automáticos, embora possa ser possível, mas seu projeto se moverá na velocidade de um caracol... ou algo parecido... Se cobrirmos bem nosso código com testes , então podemos ter certeza de que nosso cliente, nosso produto, funcionará muito bem. P/S Expresso minha profunda gratidão a Victor Sergeev!!! Aqui estão os links para a videoaula em que ele nos ensinou:
Obrigado pela sua atenção!!! Tenha bom humor!!! E que Deus te salve do código hindu!!! ...além disso, se alguém estiver interessado em se aprofundar no código-fonte do artigo... venha bater... vou compartilhar o início aqui - JUnit parte I
GO TO FULL VERSION