Szukam sposobu zastosowania TDD do ziaren sesyjnych.Jednostka testująca EJB
Czy ktoś może udzielać porad i linków, jak je testować?
jak używać JUnit do tego?
P.S: Jestem nowy w testowaniu napędzanego rozwoju i ziaren sesyjnych.
Używam EJB v2.
Szukam sposobu zastosowania TDD do ziaren sesyjnych.Jednostka testująca EJB
Czy ktoś może udzielać porad i linków, jak je testować?
jak używać JUnit do tego?
P.S: Jestem nowy w testowaniu napędzanego rozwoju i ziaren sesyjnych.
Używam EJB v2.
Zakładam, że mówisz o ziarnach sesji EJB2.x. W przypadku tych zwierząt najbardziej lubię:
Nie mówisz, której wersji EJB używasz. Jeśli to EJB v3, sprawdź numer Ejb3Unit. Ze strony:
Ejb3Unit jest rozbudowa JUnit i może wykonywać zautomatyzowanych Samodzielny JUnit testy dla wszystkich EJB 3.0 zgodne Java EE projektów. Metoda testowania poza pojemnikiem prowadzi do krótkich cykli testów kompilacji, , ponieważ nie jest już konieczne wdrożenie kontenera .
Jednak zalecałbym oddzielenie funkcjonalności od specyfiki EJB. Umożliwi to przetestowanie złożonej funkcjonalności poza kontenerem i bez korzystania z frameworków takich jak powyższe. Większość twoich testów testowałaby POJO (zwykłe stare obiekty Javy), a stosunkowo niewiele skupiałoby się na testowaniu ram utrzymywania.
EDYCJA: Więc jeśli używasz EJB v2, to oczywiście zignoruj pierwszy punkt. Drugi punkt pozostaje jednak ważny.
Obecnie używam apache openejb jako osadzonego kontenera do testów jednostkowych. Chociaż jest to projekt EJB3/JPA, powinien działać tak samo dla EJB2. Załadowania kontenera w badaniach po prostu trzeba utworzyć obiekt InitialContext które można później użyć do wyszukiwania EJBs i DataSources:
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
// a DataSource named "mysql"
props.put("mysql", "new://Resource?type=DataSource");
props.put("mysql.JdbcDriver", "com.mysql.jdbc.Driver");
props.put("mysql.JdbcUrl", "jdbc:mysql://localhost:3306");
props.put("mysql.JtaManaged", "true");
props.put("mysql.DefaultAutoCommit", "false");
props.put("mysql.UserName", "root");
props.put("mysql.Password", "root");
Context context = new InitialContext(props);
LocalInterface local = (LocalInterface)context.lookup(localInterfaceName + "BeanLocal");
DataSource ds = (DataSource)context.lookup("java:openejb/Resource/mysql");
Edycja: Istnieje kilka dokumentacji w sekcji „technik testowania” na http://openejb.apache.org/3.0/index.html.
czy możesz podać link do dobrego samouczka na ten temat? wydaje się obiecujący. – Attilah
Urządzenie Mockrunner może być używane w połączeniu z programem MockEJB do pisania testów dla aplikacji opartych na EJB.
Zapraszamy do obejrzenia tej
http://mockrunner.sourceforge.net/examplesejb.html
+1 - Dla dwóch ostatnich propozycji, nie myślałem o Cactus lat.:) –
Właściwie nie korzystałem z Cactus od lat :) –
Próbowałem skonfigurować Cactus do użytku, ale tak naprawdę go nie dostaję! Czuję, że to zbyt trudne do skonfigurowania. Używam Eclipse i NetBeans. – Attilah