Я относительно новичок в JAX-RS, JPA, GlassFish, Java DB и NetBeans, и я хотел бы написать модульные тесты для своего кода.[Номера версий указаны внизу.] Однако я застрял на том, с чего начать.Я провел хороший поиск, но у меня пока нет ясного понимания, как настроить встроенный тест моего кода.Я использую NetBeans, но мой вопрос общий.Я хотел бы сформулировать свой вопрос более четко, но это лучшее, что я мог сделать.До сих пор я нашел следующие возможные фрагменты (больше похоже на подсказки на данный момент).
o Я хочу настроить это без Maven, но это означает, что я должен установить встроенные банки вручную. В: Где я могу их найти?
o Создать версии моих конфигурационных xml-файлов (glassfish-resources.xml и persistence.xml), в которых указываются встроенные версии GlassFish и Java DB. В: Но как вы скажете NetBeans использовать их для тестирования, а не для рабочих, которые используют установленную версию?
Я думаю, что persistence.xml будет выглядеть примерно так (из с использованием hibernate со встроенным derby ):
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:derby:test"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="root"/>
o Создание пользовательского файла конфигурации домена Glassfish ( Embedded GlassFish игнорирует ресурсы тестирования Maven ). В: Как это должно выглядеть?У меня есть domain.xml из домена default1, который был создан с моей установкой NetBeans, но есть много чего.
o Когда у моего проекта есть доступ к встроенным файлам, и он настроен на использованиекак должен выглядеть мой ремень JUnit?http://jersey.java.net/nonav/documentation/latest/client-api.html#d4e759 говорит:
protected void setUp() throws Exception {
...
glassfish = new GlassFish(BASE_URI.getPort());
ScatteredWar war = new ScatteredWar(...);
glassfish.deploy(war);
...
Однако я также видел упомянутое EJBContainer, например, (из http://docs.oracle.com/javaee/6/tutorial/doc/gkcqz.html):
@BeforeClass
public static void initContainer() throws Exception {
ec = EJBContainer.createEJBContainer(); ctx = ec.getContext();
}
o IЯ использую JPA, поэтому мне нужен доступ к PersistenceContext / EntityManager.В настоящее время я смотрю это через:
new InitialContext().lookup("java:module/<jax-rs resource name>");
Но я также видел:
emf = Persistence.createEntityManagerFactory("chapter02PU");
Q: Какой правильный способ получить это?
Буду очень признателен за вашу помощь.
- Версии:
- GlassFish Server Open Source Edition 3.1.2 (сборка 23)
- JavaDB / Derby: 10.8.1.2 - (1095077)
- IDE NetBeans 7.1 (сборка 201112071828)