Omawiając testy integracyjne pominąłem kwestię konwersacji. Dlatego dzisiaj postanowiłem utworzyć i przetestować nowy komponent, działający w oparciu o konwersację.
Interfejs
Komponent będzie pozwalał na utworzenie nowego konta użytkownika. Jednak oprócz widoku formularza będzie on posiadał widok z pytaniem o potwierdzenie danych:
package pl.info.czerwinski;
import javax.ejb.Local;
@Local
public interface NewUser {
...
Więcej…
Poza zwykłymi testami jednostkowymi czy testami komponentów, Seam pozwala wykonywać testy integracyjne w środowisku symulującym JSF.
Jako przykładu użyję zmiany hasła użytkownika. Do tego celu będę potrzebował choćby prostego uwierzytelnienia, na którym oprę działanie nowego komponentu.
Interfejs
Interfejs komponentu musi posiadać właściwości pozwalające na podanie ...
Więcej…
Opisane ostatnio testy jednostkowe pozwalają przetestować funkcjonalność pojedynczej klasy. Jednak nie da się w ten sposób przetestować działania komponentów w kontekście.
Encja
Jako przykładu, użyję ustawień aplikacji zapisywanych w bazie danych. Poniżej przedstawiam odpowiednią encję:
@Entity
@Table(name="settings")
@org.hibernate.annotations.Table(appliesTo="settings", indexes={
@Index(name="idx_setting_key", columnNames={"key"})
})
@NamedQueries({
@NamedQuery(
...
Więcej…
Uwaga: Walidator uzupełniony o format bez łączników oraz weryfikację cyfry kontrolnej znajduje się w projekcie opisanym w artykule Dodatkowe walidatory Hibernate. Niniejszy wpis dotyczy głównie użycia parametrów adnotacji walidatora.
Opisując tworzenie nowego walidatora Hibernate wspomniałem o parametrach adnotacji. Postanowiłem utworzyć przykład takiej walidacji dla Numerów ...
Więcej…
Testy jednostkowe w Seam Framework nie różnią się od innych testów jednostkowych. Jednak to od nich powinienem zacząć.
Do tego celu postanowiłem wykorzystać nowy walidator Hibernate, sprawdzający poprawność nazwy użytkownika (loginu).
Adnotacja
Najpierw utworzę nową adnotację @ValidLogin, która na równi z @NotNull czy @Email będzie ...
Więcej…