问题标签 [jmockit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
124 浏览

java - 如何在一个测试方法中创建单个类的模拟和非模拟实例?

如何在一个测试方法中创建单个类的模拟和非模拟实例?

如果其“lastContact”属性超过 5 分钟,则“条目”可能会过期。我使用 Mock 来创建这样的 Entry-object:

这工作正常。在下一个测试中,我需要一个“过期”和一个非“过期”条目(两者都将被添加到一个 EntryList 并且在“purge()”之后只有未过期的条目应该保留)。但是设置模拟会改变整个类,因此该类的所有实例都将被模拟:

这失败了。我尝试了几种设置模拟的方法,但我没有得到它。我怎么解决这个问题?

谢谢

0 投票
1 回答
1597 浏览

unit-testing - 使用 JMockit 和 JUnit 3 运行 Eclipse 插件测试

我尝试使用 JMockit 在 Eclispe Helios 中运行插件测试(不是常规单元测试)。不幸的是,模拟不起作用。我明白了

警告:JMockit 是按需初始化的,这可能会导致某些测试失败;请检查文档以获得更好的初始化方法。

并且字节码检测失败并出现异常。我在插件测试启动器的 VM 参数中添加了“-javaagent:mockit.jar”。这没有帮助。我该怎么做才能让 JMockit 运行?

0 投票
3 回答
1781 浏览

java - JMockit:如何避免来自超类的构造函数的代码

我需要测试一个扩展 Car 的类 SportCar。问题是当我创建被测对象时

它还将调用父类的构造函数,例如 Car()。那些构造函数做了很多事情,有很多环境依赖,需要很多我没有的配置文件,所以我想创建一个 SportCar 的实例而不调用继承的构造函数。

我知道的唯一解决方案是为 Car 创建一个 Mockup,在其中我覆盖构造函数 ($init) 和静态块 ($clinit)。但是现在我的问题是,如果我的层次结构中有很多类(SportCar 扩展 Car 扩展 A 扩展 B 扩展 C ...)并且我想避免所有构造函数,会发生什么?我应该为所有以前的课程创建模拟吗?

0 投票
1 回答
3205 浏览

java - JMockit - 期望和静态方法

我正在尝试模拟一种方法以使其返回一个特定对象:

但我面临两个问题:

  1. 我在退货电话中收到“当前没有可用的调用”
  2. 如果我尝试添加结果变量,我会遇到编译问题。

我正在使用JDK1.5。有任何想法吗?

0 投票
1 回答
514 浏览

spring - 在 Spring 框架中使用 JMockit 和 TestNG

Spring 框架与 jUnit 和 EasyMock 有很好的集成。有没有人有在 Spring 框架中使用 JMockit 和 TestNG 的经验?

0 投票
2 回答
6571 浏览

java - jmockit、openJDK 和 UnsatisfiedLinkError

尝试在 OpenJDK 6 上使用 JMockit 运行测试时,我遇到了以下错误:

我查看了文件夹 /usr/local/openjdk6/jre/lib/amd64/ 并在那里找到了libattach.so

但是添加-Djava.library.path=/usr/local/openjdk6/jre/lib/amd64并没有解决问题。我还能尝试什么?

0 投票
1 回答
2206 浏览

java - 使用 @Mocked 多次模拟同一类时的 JMockit 行为

在模拟一个类一次和在测试中模拟一个类两次时,我得到不同的输出。我知道@Mocked 模拟了一个类的所有实例,但不确定为什么模拟不止一次会影响新创建对象的输出。这种行为是预期的吗?

测试 1. 打印10

使用第二个模拟日期进行测试 2。打印0

0 投票
1 回答
1440 浏览

junit - 如何在 IBM J9 JVM 上将 JMockit 与 Gradle 一起使用?

我正在使用 Gradle (Milestone 8a) 使用 IBM J9 JVM 在我的项目上运行 JUnit 测试,根据“使用 JMockit 运行测试”要求我将参数传递-javaagent:jmockit.jar给 JVM。但是,JMockit 没有注入模拟参数,这导致我的测试失败,并显示“方法(foo)应该没有参数)”。测试在 HotSpot JVM 上的 Eclipse 中运行良好。

我已扩展test任务以查找 JAR 并将参数添加到jvmArgs如下所示:

我还在testCompile配置中添加了 JMockit 和 JUnit,确保首先使用 JMockit,并通过运行验证这一点gradle dependencies

的输出gradle check --debug确认-javaagent正在使用该参数:

我很确定我已经做了我应该做的一切。为什么我的测试无法运行?

0 投票
2 回答
3183 浏览

java - MyClass 在两次测试之间一直被嘲笑

我有两个测试类,MyFirstTest 和 MySecondTest。独立运行每个都可以正常工作。当我同时运行两者时(在 Eclipse 中选择包含这些文件的测试文件夹,右键单击,以 junit 运行),MySecondTest 失败,因为 MyClass 在运行它的测试时仍然被模拟。MyFirstTest 要求 MyClass 被模拟。MySecondTest 要求 MyClass 不被嘲笑。我认为tearDownMocks 是为了“模拟”课程。

0 投票
0 回答
457 浏览

java - Mockit redefineMethod 由于接口或通用抽象而无法正常工作

我试图弄清楚为什么 Mockit 不适用于以下代码:

我回来的错误是:

有想法该怎么解决这个吗??最后,我希望测试使用 MockSomeServiceImpl 方法而不是 SomeService 实现中的方法。

SomeService 是由 WSDL 生成的,所以我没有 someObject.getService() 返回的实现。所以我不能做 Mockit.redefineMethods(SomeServiceImpl.class, MockSomeServiceImpl.class)