pom配置
话说Junit+Mockito的组合用起来是真难用,还是Spock的简单,尤其是参数化的测试。junit的Parameter是鸡肋,杂恶心;Theories用来也不爽。
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><packaging>jar</packaging><modelVersion>4.0.0</modelVersion><groupId>com.tom</groupId><artifactId>lspock</artifactId><version>1.0-SNAPSHOT</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><groovy.version>2.4.1</groovy.version><surefire.version>3.1.2</surefire.version><spock-core.version>1.0-groovy-2.4</spock-core.version></properties><build><plugins><plugin><groupId>org.codehaus.gmavenplus</groupId><artifactId>gmavenplus-plugin</artifactId><version>1.4</version><executions><execution><goals><goal>compile</goal><goal>testCompile</goal></goals></execution></executions></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>${surefire.version}</version><configuration><testSourceDirectory>src/test/java</testSourceDirectory><useFile>false</useFile><includes><include>**/*Spec.java</include> <!-- Yes, .java extension --><include>**/*Test.java</include> <!-- Just in case of having also "normal" JUnit tests --></includes></configuration></plugin></plugins></build><dependencies><dependency><groupId>org.spockframework</groupId><artifactId>spock-core</artifactId><version>${spock-core.version}</version><scope>test</scope></dependency><dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy-all</artifactId><version>${groovy.version}</version></dependency><dependency> <!-- only required if Hamcrest matchers are used --><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>2.2</version><scope>test</scope></dependency></dependencies>
</project>
test类
package com.tom.lspock.modelimport org.hamcrest.MatcherAssert
import org.hamcrest.Matchers
import spock.lang.Specificationclass MyModelTest extends Specification {def "test_model"() {given:String s = ""when:println(1234)def replace = s.replace("s", "--")then:MatcherAssert.assertThat("myStringOfNote", Matchers.startsWith("my"))MatcherAssert.assertThat(replace, Matchers.equalTo(""))}
}
mvn clean test
~/work/llixi/lspock/ [master+*] mvn clean test