public class TestClass {
private static void initializeProperties() {
// Code that will not run during test
}
public static boolean getValue() {
return true; // <=== BREAK POINT SET HERE WILL NEVER BE HIT
}
}
class TestClassSpec extends Specification {
void setup() {
new MockUp<TestClass>() {
@Mock
public static void initializeProperties() {}
}
}
void "run test"() {
when:
boolean result = TestClass.getValue()
then:
result == true
}
}
注意:如果我不使用JMockitmockup
,我可以进行调试,但是在生产代码中测试private static
方法需要使用这个方法。
关于如何让调试器从使用JMockit的Spock测试中停在Java代码中,有什么想法吗?
这个答案困扰了我好几天,我一直在寻找答案。发帖求助15分钟后,我找到了答案。因此,对于其他遇到这种情况的人,这里有我的解决方案--这都要归功于这个答案:https://stackoverflow.com/a/4852727/2601060
简而言之,当jMockit重新定义类时,断点将被移除。解决方案是在测试中设置断点,一旦调试器在测试中停止,就在Java代码中设置断点。
大家都很高兴...
下面是源代码和测试代码,有人能让我知道我做错了什么吗?似乎根本没有调用dao mock并返回“USA”。我在网上做了一些研究,找不到我做错了什么。 下面是我的Spock测试代码:
编辑: 链接到repo示例:https://gitlab.com/bartekwichowski/spock-too-many
我正在使用一个用Groovy编写的Spock测试来测试一些Java代码。我使用JMockit来模拟java代码中的方法,因为Spock只处理模拟Groovy类。我遇到了一个问题,在测试之间存在一个JMockit。这样的模拟实例应该只存在于测试中(根据JMockit文档),但这不起作用,我想这是因为它没有使用JMockit测试运行器,而是使用了Spock测试运行器。 问题 有什么方法可以手动移除JM
是否有人能够从Maven Build获得JaCoCo中JMockit和Powermock单元测试的复盖范围? 我有一个Powermock单元测试的现有测试集,我希望逐步将其迁移到JMockit。但是我需要能够在一个报告中看到所有单元测试的测试覆盖范围,最好是在Sonar中。 通过将JaCoCo置于“脱机”模式,我确实使JMockit和Powermock测试与Surefire/JaCoCo一起运行(
我在开始使用spock测试java代码时遇到了一个问题。运行测试时出现错误: 我使用Intellij和Maven,将依赖项放入pom文件: 创建了我的简单类:(在java中) 和测试(它是spock类): 我的项目树如下所示: 我试着跟随一些教程,但可能我错过了一些东西。我的项目有什么问题,为什么测试不起作用?
我是Spock框架的新手,在使用抽象java测试类时遇到了问题。 我想要的是一个groovy测试类,它用一些常用的方法扩展一些其他java抽象类,这些方法反过来扩展规范类。 当我运行GroovyTest类时,我得到以下错误: Org.SpockFramework.Runtime.InvalidSpecException:规范“org.my.package.AbstractTest”未正确编译(Sp