Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将EJB注入JUnit测试类_Java_Unit Testing_Jakarta Ee_Junit_Ejb - Fatal编程技术网

Java 将EJB注入JUnit测试类

Java 将EJB注入JUnit测试类,java,unit-testing,jakarta-ee,junit,ejb,Java,Unit Testing,Jakarta Ee,Junit,Ejb,我定义了一个EJB,如下所示: @Stateless @LocalBean public class Foo { @Inject private Boo boo; public void doSomething() { boo.doOther(); } } 以及: 我想将FooEJB注入到JUnit测试类中: import org.junit.* public class FooTest { @EJB private F

我定义了一个EJB,如下所示:

@Stateless
@LocalBean
public class Foo {

    @Inject
    private Boo boo;

    public void doSomething() {
        boo.doOther();
    }

}
以及:

我想将
Foo
EJB注入到JUnit测试类中:

import org.junit.*

public class FooTest {

    @EJB
    private Foo foo;

    @Test
    public void doSomethingTest() {
        foo.doSomething();
        assertTrue(true);
    }

}
。。。但此代码返回一个
NullPointerException


怎么了?如何使用JavaEECDI正确定义该测试?

您需要一个容器来运行测试。您可以使用反射或构造函数连接查看bean,或者自己将bean注入测试中。请看下面的和。
import org.junit.*

public class FooTest {

    @EJB
    private Foo foo;

    @Test
    public void doSomethingTest() {
        foo.doSomething();
        assertTrue(true);
    }

}