java – JMockit:如何在使用@Tested批注时调试测试?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – JMockit:如何在使用@Tested批注时调试测试?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1846字,纯文字阅读大概需要3分钟。
内容图文
![java – JMockit:如何在使用@Tested批注时调试测试?](/upload/InfoBanner/zyjiaocheng/781/550b14012db04666b1a3dc40083d7214.jpg)
问题Debug Partial Mock in JMockit和Debugging Java code tested with Spock and JMockit已经解决了这个问题,当JMockit重新定义/检测类时,被测试软件(SUT)中的断点会被忽略.
建议的解决方案是,一旦执行在测试类中停止,您应该在测试类中添加一个额外的断点,以便重新激活SUT中的断点.
但是,如果在测试类中使用@Tested批注,则此解决方案不起作用,因为在这种情况下,测试类本身中的断点将被忽略.
这是一个例子:
package de.playground;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import mockit.Expectations;
import mockit.Injectable;
import mockit.integration.junit4.JMockit;
@RunWith(JMockit.class)
public class DebuggingWithJMockitTest {
public interface Collaborator {
String execute(String... args);
}
public static class ToTest {
private Collaborator collaborator;
public ToTest(Collaborator collaborator) {
this.collaborator = collaborator;
}
public String doSomething() {
return collaborator.execute("a", "b");
}
}
@Injectable
private Collaborator collaborator;
@Tested
private ToTest toTest;
@Test
public void testHoldOnBreakpoint() {
new Expectations() {{
collaborator.execute((String[]) any); result = "whatever";
}};
String result = toTest.doSomething(); // add breakpoint here
assertThat(result, is("whatever"));
}
}
在这种情况下,调试器不会停止在String result = toTest.doSomething();线.如果您不使用@Tested批注并在@Before方法中初始化SUT,请执行以下操作:
// @Tested is not used
private ToTest toTest;
@Before
public void before() {
toTest = new ToTest(collaborator);
}
断点工作得非常好.
即使您在测试类中使用@Testedannotation,是否有任何解决方法可以调试代码?
解决方法:
JMockit Google Group上的这个错误was brought up:
Yes, the problem is known, and already solved in JMockit 1.24.
看起来没有记录它的问题.我们的团队在JMockit 1.23上遇到了这个问题,并且确实能够通过升级到JMockit 1.24来克服它.
内容总结
以上是互联网集市为您收集整理的java – JMockit:如何在使用@Tested批注时调试测试?全部内容,希望文章能够帮你解决java – JMockit:如何在使用@Tested批注时调试测试?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。