Tag: spock

如何在Groovy中设置final字段

我有一个java类,我在groovy / spock中测试。 java类有一个final字段: private static final log = Logger.getLogger(…) 我想测试方法是否使用此记录器,最好使用模拟。 问题是这个领域是最终的,所以我不能只设置它。 我知道有一些解决方法,如: modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); 但这些都是糟糕的黑客。 是否有一种更加时髦的方式来做到这一点?

将Spock的测试与Sonar集成

我使用spock编写测试用例和jenkins来运行和发布我的测试用例。 我能够获得报告的代码覆盖率,但声纳只显示Javaunit testing用例; groovy测试用例完全缺失 以下pom.xml用作参考https://github.com/kkapelon/java-testing-with-spock/blob/master/chapter7/spring-standalone-swing/pom.xml 谁会知道我错过了什么?

在groovy中读取Excel文件的最简单方法?

是否有任何warappers / utils可用于读取Groovy中的Excel文件。 我正在寻找类似于Groovy SQL的行函数的东西,如下面的spock测试示例所示。 我的目的是在Spock测试框架中使用excel进行数据驱动测试 import groovy.sql.Sql import spock.lang.* class DatabaseDriven extends Specification { @Shared sql = Sql.newInstance(“jdbc:h2:mem:”, “org.h2.Driver”) // normally an external database would be used, // and the test data wouldn’t have to be inserted here def setupSpec() { sql.execute(“create table maxdata (id int primary key, a int, b int, c int)”) […]

使用spock数据表填充对象

我是第一次使用Spock。 由于我们使用的是复杂的域模型,因此可以使用一种机制,这种机制允许我根据spock表给出的数据创建完整的对象。 我不想每次都给出所有值,我只想设置datable中定义的值。 所以应该在某处定义默认值。 是的,我知道我可以自己写,但也许有一个开箱即用的解决方案。 例 class A { String name int age } spock表 id | givenA | … 1 | [name: “Michael”] | … 2 | [name: “Thomas”, age: 45 ] | … => A.name =“Michael”,A.age =在某处定义默认值 => A.name =“Thomas”A.age = 45(因为我覆盖了默认值)

使用spock junit测试和gradle构建系统在控制台上输出unit testing结果

GNU Emacs 24.3.1 Gradle 1.12 spock-core.0.7 你好, 我正在使用gradle build系统使用spock framework进行unit testing。 当我运行我的测试gradle test我只看到这样的消息: * What went wrong: Execution failed for task ‘:test’. > There were failing tests. See the report at: file:///home/projs/gradleTest/build/reports/tests/index.html 然后我必须去检查xml文件以查看抛出了什么exception 有没有我可以在控制台输出中看到exception的选项? 例如,我有一些打印消息,我想打印到控制台输出: catch(FileNotFoundException ex) { System.out.println(“Exception ” + ex.toString()); } catch(IOException ex) { System.out.println(“Exception ” + ex.toString()); } catch(Exception ex) { System.out.println(“Exception […]

Spock框架:间谍问题

我在Spock中使用Spy有一个问题,它要么不能正常工作,要么我的理解是错误的,所以我试图弄清楚这一点。 考虑这段代码(Java): public class CallingClass { public String functionOne() { //does stuff return “one”; } public String functionTwo() { String one = functionOne(); return “some string ” + one; } } 现在我想测试一下这个事实,即functionTwo调用functionOne以及定义functionOne的返回值(想象一下,如果functionOne真的很复杂,我不想在我的测试中执行它只是想将它存根并将其设置为返回一定的值)。 为此,我在Groovy中编写以下测试(使用Spock): class CallingClassTest extends Specification { def “check that functionTwo calls functionOne”() { def c = Spy(CallingClass) c.functionOne() >> “mocked function return” when: […]

使用Maven运行spockunit testing

在之前的项目中,我使用Spock测试框架对我的Java代码进行unit testing。 我发现这非常有效,所以我试图将Spock测试添加到我当前的项目中,该项目使用Maven作为其构建工具(之前的项目使用了Gradle)。 虽然我可以让Maven编译我的Spock测试(使用groovy-eclipse-compiler ),但我无法让Maven运行测试。 我做了一个简单的例子来演示我的2个文件的问题: pom.xml src/test/java/ASpec.groovy pom.xml内容: 4.0.0 my.group my-artifact 0.1-SNAPSHOT junit junit 4.10 org.codehaus.groovy groovy-all 2.0.8 test org.spockframework spock-core 0.7-groovy-2.0 test org.apache.maven.plugins maven-compiler-plugin 3.1 groovy-eclipse-compiler org.codehaus.groovy groovy-eclipse-compiler 2.8.0-01 org.codehaus.groovy groovy-eclipse-batch 2.1.8-01 ASpec.groovy内容: import spock.lang.Specification class ASpec extends Specification { def “Test A”(){ // Always fail expect: false } } 当我执行mvn clean test […]