Hej
Najwyższy czas zabrać się za testy. Nigdy tego nie robiłem chociaż już od jakiegoś czasu programuje... Więc mam klasę :
public class Product {
@Min(20)
@Max(50)
private int cena;
@Size(min = 3, max = 40)
private String nazwa;
@Max(100)
private String kategoria;
//gettery, settery etc.
I teraz chciałem napisać test czy działa mi validacja.
@Test
public void shouldNotValidateWhenPriceOver50() {
Product p = new Product();
p.setCena(1000);
Set<ConstraintViolation<Product>> violations = validator.validate(p);
assertFalse(violations.isEmpty());
}
I wszystko ładnie test przeszedł, ale to nie ma sensu, bo validacja zadziałała dla całego obiektu, a nie dla jednego pola. I tutaj moje pytanie.
- Jak pisać takie testy? Czy powinienem w takim teście uwzględnić pola **nazwa **oraz kategoria?
- Czy jest opcja testowania tylko jednego pola?
- Czy lepiej pisać testy, na "assertTrue" czy "assertFalse" (sorki nie wiem jak to inaczej wytłumaczyć)
- Ogólne porady dotyczące testowania.
Z góry dzięki