Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jUnit-тест для EJB, Не понимаю как это вообще можно сделать 
:(
    Опции темы
YaMolekula
Дата 7.1.2014, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.9.2011

Репутация: нет
Всего: нет



Добрый вечер.
Я новичок как в jUnit, так и в EJB. Я сделал наипростейший EJB-проект с одним бином, с этим проблем не возникло. Но попытки сделать простейший тест для этого единственного бина ни к чему не привели. Я запускаю проект с помощью JBoss AS 7.

Это какой-то ужас.

В чем может быть ошибка?
Что мне нужно сделать чтобы оно заработало?

И есть немного наглая просьба: если у вас есть небольшой рабочий пример по тестированию с помощью встроенного механизма jUnit, с помощью Arquilian, с помощью Mockito - скиньте пожалуйста по всем трём или хотя бы что-то.

В проекте есть бин HelloBean:
Код

package com.pack;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;

/**
 * Session Bean implementation class HelloBean
 */
@Stateless
public class HelloBean implements Hello {

    public String sayHello(String name) {
        return "Hello " + name;
    }

}


Для этого бина есть интерфейс Hello:
Код

package com.pack;

public interface Hello {
    String sayHello(String name);
}


Я написал тест для этого бина:
Код

package com.pack;

import static org.junit.Assert.*;

import java.util.Date;

import javax.ejb.embeddable.EJBContainer;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import org.junit.Test;

public class HelloTest {

    @Test
    public void test() throws NamingException {
         EJBContainer container = EJBContainer.createEJBContainer();

          // Note that global naming isn't working yet.
          InitialContext ctx = new InitialContext();
          Hello bean = (Hello) ctx.lookup("HelloBean/local");

          String now = new Date().toString();
          String actual = bean.sayHello(now);

          assertEquals("Hello " + now, actual);

          container.close();
    }
}


Но этот тест выдает следующую ошибку:
Код

javax.ejb.EJBException: Unable to instantiate container with factories [] at
 javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBCont ainer.java:97) at
 javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBCont ainer.java:75) at
 com.pack.HelloTest.test(HelloTest.java:17) at
 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at
 java.lang.reflect.Method.invoke(Unknown Source) at
 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall( FrameworkMethod.java:47) at
 org.junit.internal.runners.model.ReflectiveCallable.run(Refl ectiveCallable.java:12) at
 org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr ameworkMethod.java:44) at
 org.junit.internal.runners.statements.InvokeMethod.evaluate( InvokeMethod.java:17) at
 org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271 ) at
 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit 4ClassRunner.java:70) at
 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit 4ClassRunner.java:50) at
 org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at
 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java: 63) at
 org.junit.runners.ParentRunner.runChildren(ParentRunner.java :236) at
 org.junit.runners.ParentRunner.access$000(ParentRunner.java: 53) at
 org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java: 229) at
 org.junit.runners.ParentRunner.run(ParentRunner.java:309) at
 org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at
 org.eclipse.jdt.internal.junit.runner.TestExecution.run(Test Execution.java:38) at
 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:467) at
 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:683) at
 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R emoteTestRunner.java:390) at
 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main( RemoteTestRunner.java:197)



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0761 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.