Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a258a5f785 | ||
|
|
f384ce5fe5 | ||
|
|
5c1e69ed32 | ||
|
|
2e12fdbd34 |
+11
-1
@@ -1,11 +1,21 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id('groovy')
|
id('groovy')
|
||||||
|
id('application')
|
||||||
|
id 'com.github.johnrengelman.shadow' version '7.1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
version = "1.0"
|
version = "1.0"
|
||||||
description = "simple-jbdd is a simple BDD testing framework for Java."
|
description = "simple-jbdd is a simple BDD testing framework for Java."
|
||||||
|
|
||||||
// Spock works with Java 1.8 and above
|
application {
|
||||||
|
mainClassName = 'space.kklochko.simple_jbdd.Main'
|
||||||
|
}
|
||||||
|
|
||||||
|
shadowJar {
|
||||||
|
mergeServiceFiles()
|
||||||
|
minimize()
|
||||||
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain {
|
toolchain {
|
||||||
languageVersion.set(JavaLanguageVersion.of(17))
|
languageVersion.set(JavaLanguageVersion.of(17))
|
||||||
|
|||||||
@@ -18,6 +18,32 @@
|
|||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
|
<version>3.2.2</version>
|
||||||
|
<configuration>
|
||||||
|
<archive>
|
||||||
|
<manifest>
|
||||||
|
<mainClass>space.kklochko.simple_jbdd.Main</mainClass>
|
||||||
|
<addClasspath>true</addClasspath>
|
||||||
|
</manifest>
|
||||||
|
</archive>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
|
<version>3.4.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>shade</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
<!-- Mandatory plugins for using Spock -->
|
<!-- Mandatory plugins for using Spock -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<!-- The gmavenplus plugin is used to compile Groovy code. To learn more about this plugin,
|
<!-- The gmavenplus plugin is used to compile Groovy code. To learn more about this plugin,
|
||||||
@@ -124,16 +150,5 @@
|
|||||||
<version>2.2</version>
|
<version>2.2</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- Dependencies used by examples in this project (not required for using Spock) -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.h2database</groupId>
|
|
||||||
<artifactId>h2</artifactId>
|
|
||||||
<version>2.2.222</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.groovy</groupId>
|
|
||||||
<artifactId>groovy-sql</artifactId>
|
|
||||||
<version>${groovy.version}</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package space.kklochko.simple_jbdd.test_examples.tests;
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.annotations.Title;
|
||||||
|
import space.kklochko.simple_jbdd.tests.Test;
|
||||||
|
|
||||||
|
@Title("A Simple Empty Test for Sum")
|
||||||
|
public class SimpleEmptyTest extends Test {
|
||||||
|
public void check() {
|
||||||
|
assert 30 == 10 + 20 + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+1
-1
@@ -5,7 +5,7 @@ import space.kklochko.simple_jbdd.annotations.Title;
|
|||||||
import space.kklochko.simple_jbdd.tests.Test;
|
import space.kklochko.simple_jbdd.tests.Test;
|
||||||
|
|
||||||
|
|
||||||
@Title("A Simple Failed GivenWhenTest for Sum")
|
@Title("A Simple Failed Then Test for Sum")
|
||||||
public class SimpleFailedThenTest extends Test {
|
public class SimpleFailedThenTest extends Test {
|
||||||
@Then
|
@Then
|
||||||
public void check() {
|
public void check() {
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@ import space.kklochko.simple_jbdd.annotations.When;
|
|||||||
import space.kklochko.simple_jbdd.test_examples.samples.Sum;
|
import space.kklochko.simple_jbdd.test_examples.samples.Sum;
|
||||||
import space.kklochko.simple_jbdd.tests.Test;
|
import space.kklochko.simple_jbdd.tests.Test;
|
||||||
|
|
||||||
@Title("A Simple GivenWhenTest for Sum")
|
@Title("A Simple GivenWhenThen Test for Sum")
|
||||||
public class SimpleGivenWhenThenTest extends Test {
|
public class SimpleGivenWhenThenTest extends Test {
|
||||||
private Sum sum;
|
private Sum sum;
|
||||||
private int a;
|
private int a;
|
||||||
|
|||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
package space.kklochko.simple_jbdd.tests.commands.decorators;
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.tests.Test;
|
||||||
|
import space.kklochko.simple_jbdd.tests.commands.AbstractTestCommand;
|
||||||
|
|
||||||
|
public class ErrorDecorator<T extends Test> extends AbstractDecorator<T> {
|
||||||
|
public ErrorDecorator(String error_label, AbstractTestCommand<T> command, String type) {
|
||||||
|
super(error_label, command);
|
||||||
|
setType(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean test() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean runMethod() {
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@@ -8,6 +8,7 @@ import space.kklochko.simple_jbdd.tests.Test;
|
|||||||
import space.kklochko.simple_jbdd.tests.commands.AbstractTestCommand;
|
import space.kklochko.simple_jbdd.tests.commands.AbstractTestCommand;
|
||||||
import space.kklochko.simple_jbdd.tests.commands.SimpleTestCommand;
|
import space.kklochko.simple_jbdd.tests.commands.SimpleTestCommand;
|
||||||
import space.kklochko.simple_jbdd.tests.commands.decorators.BlockDecorator;
|
import space.kklochko.simple_jbdd.tests.commands.decorators.BlockDecorator;
|
||||||
|
import space.kklochko.simple_jbdd.tests.commands.decorators.ErrorDecorator;
|
||||||
|
|
||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
@@ -20,6 +21,9 @@ public class TestCommandFactory {
|
|||||||
|
|
||||||
AbstractTestCommand<Test> aTestCommand = createTest(aClass, input);
|
AbstractTestCommand<Test> aTestCommand = createTest(aClass, input);
|
||||||
|
|
||||||
|
if(test_methods.size() == 0)
|
||||||
|
return new ErrorDecorator("ERROR!!! No blocks!!!", aTestCommand, "Error");
|
||||||
|
|
||||||
if(test_methods.containsKey("Then")) {
|
if(test_methods.containsKey("Then")) {
|
||||||
ArrayList<Method> thens = getMethodsInReverseOrder(test_methods, "Then");
|
ArrayList<Method> thens = getMethodsInReverseOrder(test_methods, "Then");
|
||||||
for(Method then : thens) {
|
for(Method then : thens) {
|
||||||
|
|||||||
+2
@@ -1,5 +1,6 @@
|
|||||||
package space.kklochko.simple_jbdd.tests.factories
|
package space.kklochko.simple_jbdd.tests.factories
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleEmptyTest
|
||||||
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenGivenWhenWhenThenThenTest
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenGivenWhenWhenThenThenTest
|
||||||
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenWhenThenTest
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenWhenThenTest
|
||||||
import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTest
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTest
|
||||||
@@ -33,6 +34,7 @@ class TestCommandFactorySpec extends Specification {
|
|||||||
|
|
||||||
where:
|
where:
|
||||||
testClass || expectedBlockCount
|
testClass || expectedBlockCount
|
||||||
|
new SimpleEmptyTest() || 0
|
||||||
new SimpleThenTest() || 1
|
new SimpleThenTest() || 1
|
||||||
new SimpleGivenWhenThenTest() || 3
|
new SimpleGivenWhenThenTest() || 3
|
||||||
new SimpleGivenGivenWhenWhenThenThenTest() || 6
|
new SimpleGivenGivenWhenWhenThenThenTest() || 6
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ class IntegratedClassLoader extends Specification {
|
|||||||
def classes = loader.load()
|
def classes = loader.load()
|
||||||
|
|
||||||
then: "Checking that the test result is expected"
|
then: "Checking that the test result is expected"
|
||||||
4 == classes.size()
|
5 == classes.size()
|
||||||
}
|
}
|
||||||
|
|
||||||
def "The classes must be represent the Test interface."() {
|
def "The classes must be represent the Test interface."() {
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ class IntegratedNameClassLoader extends Specification {
|
|||||||
def classNames = loader.load()
|
def classNames = loader.load()
|
||||||
|
|
||||||
then: "Checking that the test result is expected"
|
then: "Checking that the test result is expected"
|
||||||
4 == classNames.size()
|
5 == classNames.size()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
@@ -1,5 +1,6 @@
|
|||||||
package space.kklochko.simple_jbdd.tests.runners
|
package space.kklochko.simple_jbdd.tests.runners
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleEmptyTest
|
||||||
import space.kklochko.simple_jbdd.test_examples.tests.SimpleFailedThenTest
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleFailedThenTest
|
||||||
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenGivenWhenWhenThenThenTest
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenGivenWhenWhenThenThenTest
|
||||||
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenWhenThenTest
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenWhenThenTest
|
||||||
@@ -40,5 +41,6 @@ class IntegratedSimpleTestRunnerSpec extends Specification {
|
|||||||
new SimpleThenTestWithoutTitle() || true
|
new SimpleThenTestWithoutTitle() || true
|
||||||
new SimpleFailedThenTest() || false
|
new SimpleFailedThenTest() || false
|
||||||
new SimpleGivenGivenWhenWhenThenThenTest() || true
|
new SimpleGivenGivenWhenWhenThenThenTest() || true
|
||||||
|
new SimpleEmptyTest() || false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user