gpt4 book ai didi

Mockito 在 junit 中的事件

转载 作者:行者123 更新时间:2023-12-01 14:44:43 25 4
gpt4 key购买 nike

我尝试测试由 mockito 模拟的 javax.enterprise.event.Event 但抛出以下异常

Absent Code attribute in method that is not native or abstract in class file javax/enterprise/util/TypeLiteral

类(class)看起来像
public class MyClassTest {
@Mock Event<MyAlarm> event;
//...
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
//...
}
@Test
public void myTest() {
MyClass myClass = new MyClass();
myClass.event = event;
//...
verify(event, never()).fire(any(MyAlarm.class));
//...
}
}

我将以下内容添加到 pom.xml(maven 项目)
    <repository>
<id>glassfish</id>
<name>GlassFish Maven Repository</name>
<url>http://maven.glassfish.org/content/groups/glassfish</url>
</repository>

并在 javax (javaee-web-api) 依赖项前面包含 glassfish-embedded-all
    <dependency>
<groupId>org.glassfish.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<type>jar</type>
<scope>provided</scope>
</dependency>

我做错了什么或我误解了什么?

最佳答案

我犯了一些小错误。本文Unit Testing for Java EE亚当·比恩 (Adam Bien) 为我指明了正确的方向。
我删除了 javaee-web-api 依赖项并添加了 glassfish-embedded-all 依赖项。我的 pom.xml好像:

    <!-- .... -->
<dependency>
<groupId>org.glassfish.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.1.1</version>
<scope>provided</scope>
</dependency>
<!-- <dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>-->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.8.5</version>
<scope>test</scope>
<type>jar</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<!-- .... -->
<repositories>
<repository>
<url>http://download.java.net/maven/2/</url>
<id>java.net</id>
<layout>default</layout>
<name>java.net</name>
</repository>
</repositories>

这对我很有效,我可以测试 java ee 事件(或模拟它)。

关于Mockito 在 junit 中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6760671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com