当前位置: 首页 > 知识库问答 >
问题:

jUnit 4.11与JMock 2.6和Hamcrest 1.3的依赖关系

洪祺
2023-03-14

我使用的是JUnit4.8、JMock2.5.1和Hamcrest 1.1的组合。现在我想用JMock2.6和Hamcrest 1.3升级到JUnit4.11。

因为JUnit4.11附带了hamcrest 1.3。我只在依赖项管理中导入JUnit4.11和JMock。

java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy7.getAssignedPermissionValues(Unknown Source)
at permissions.xml.UserRolePermissionsTest$2.<init>(UserRolePermissionsTest.java:80)
at permissions.xml.UserRolePermissionsTest.emptyPermissionInfosAreSilentlyIgnoredByConstructor(UserRolePermissionsTest.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.jmock.integration.junit4.JUnitRuleMockery$1.evaluate(JUnitRuleMockery.java:49)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.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(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Caused by: java.lang.InstantiationException: java.util.EnumSet
at java.lang.Class.newInstance(Class.java:359)
at org.jmock.internal.ReturnDefaultValueAction.collectionOrMapInstanceFor(ReturnDefaultValueAction.java:87)
at org.jmock.internal.ReturnDefaultValueAction.invoke(ReturnDefaultValueAction.java:77)
at org.jmock.internal.InvocationToExpectationTranslator.invoke(InvocationToExpectationTranslator.java:20)
at org.jmock.internal.FakeObjectMethods.invoke(FakeObjectMethods.java:38)
at org.jmock.lib.JavaReflectionImposteriser$1.invoke(JavaReflectionImposteriser.java:33)
... 28 more

问候和感谢

共有1个答案

马和硕
2023-03-14

这对我很有效:如果我没有弄错的话,jmock-junit4将引入junit-dep:4.4(这不会在junit:4.11中省略,artifactId不同)。

<!-- general test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <artifactId>hamcrest-core</artifactId>
                <groupId>org.hamcrest</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-library</artifactId>
        <version>1.3.RC2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jmock</groupId>
        <artifactId>jmock-junit4</artifactId>
        <version>2.6.0</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <artifactId>hamcrest-core</artifactId>
                <groupId>org.hamcrest</groupId>
            </exclusion>
            <exclusion>
                <artifactId>junit-dep</artifactId>
                <groupId>junit</groupId>
            </exclusion>
        </exclusions>
    </dependency>
 类似资料:
  • 问题内容: 要开发我的Kafka连接器,我需要添加一个connect-API依赖项。 我应该使用哪一个? 例如mongodb连接器使用来自Maven Central的connect- api 但是来自开发人员指南的链接转到https://packages.confluent.io/maven/org/apache/kafka/connect- api/5.5.0-ccs/ ,此外还有版本。 因此,

  • 我使用的是与Android Studio捆绑的Gradle构建系统。到目前为止,我能够使用存储在项目结构中的依赖关系构建多项目设置。我现在想使用maven依赖,但没有用。我写了一个非常简单的构建。总是失败的gradle文件: 显示以下消息: 到目前为止,我尝试过的任何产品都会发生这种情况。你知道怎么了吗? 谢谢

  • 编写的PHP扩展需要需要依赖另外一个扩展,在PHP-X中可以调用Extension->require来实现。 PHPX_EXTENSION() { Extension *ext = new Extension("test", "0.0.1"); ext->require("swoole"); ext->require("sockets"); return ext;

  • 依赖关系 这是一个非常轻量级的模块,没有其他依赖项。希望大家在JVM或Android上使用以太坊的RLP编码的项目时会选择使用这个模块,而不再编写自己的实现。

  • 依赖关系 ABI一个非常轻量级的模块,唯一的第三方依赖是 Bouncy Castle,用于hash加密 (Spongy Castle on Android)。 最后希望java和安卓开发者,在JVM或Android上有以太坊ABI合作的项目时会选择使用这个模块,而不是再编写自己的实现。

  • 我是一个初学者,对这个基本问题很抱歉,我只是找不到答案。 在flutter项目中,在pubspec.yaml文件中存在依赖项。例如,我正在使用: 谢谢