Add SimpleTestRunner as a test runner.
continuous-integration/drone/tag Build is failing Details

main 0.5.0
KKlochko 2 years ago
parent 1549f85a49
commit 9a14ea6486

@ -0,0 +1,6 @@
package space.kklochko.simple_jbdd.tests.runners;
public abstract class AbstractTestRunner {
public abstract boolean run();
}

@ -0,0 +1,29 @@
package space.kklochko.simple_jbdd.tests.runners;
import space.kklochko.simple_jbdd.tests.Test;
import space.kklochko.simple_jbdd.tests.commands.AbstractTestCommand;
public class SimpleTestRunner extends AbstractTestRunner {
AbstractTestCommand<Test> command;
public SimpleTestRunner(AbstractTestCommand<Test> command) {
this.command = command;
}
public boolean run() {
try {
return getCommand().test();
}catch (AssertionError e) {
return false;
}
}
public AbstractTestCommand<Test> getCommand() {
return command;
}
public void setCommand(AbstractTestCommand<Test> command) {
this.command = command;
}
}

@ -0,0 +1,87 @@
package space.kklochko.simple_jbdd.tests.runners
import space.kklochko.simple_jbdd.test_examples.tests.SimpleFailedThenTest
import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTest
import space.kklochko.simple_jbdd.tests.commands.SimpleTestCommand
import space.kklochko.simple_jbdd.tests.factories.TestCommandFactory
import spock.lang.Narrative
import spock.lang.Specification
import spock.lang.Subject
import spock.lang.Title
@Narrative("""The runner must return a result of test, so
those tests check if passed and failed test generate the right result.
""")
@Title("Unit tests for SimpleTestRunner")
class SimpleTestRunnerSpec extends Specification {
def "The test with then has been passed."() {
given: "I have a testCommand"
def test = Stub(SimpleTestCommand)
test.test() >>> [true]
and: "I have a test runner"
@Subject
def runner = new SimpleTestRunner(test)
when: "The testCommand has been run"
def result = runner.run()
then: "The result is true"
result
}
def "The real test with then has been passed."() {
given: "I have a test and a factory"
def aTest = new SimpleThenTest()
def factory = new TestCommandFactory();
and: "I have a testCommand"
def test = factory.create(aTest)
and: "I have a test runner"
@Subject
def runner = new SimpleTestRunner(test)
when: "The testCommand has been run"
def result = runner.run()
then: "The result is true"
result
}
def "The test with then that has not been passed."() {
given: "I have a failed testCommand"
def test = Stub(SimpleTestCommand)
test.test() >> { assert 1 == 0 }
and: "I have a test runner"
@Subject
def runner = new SimpleTestRunner(test)
when: "The testCommand has been run"
def result = runner.run()
then: "The result is true"
!result
}
def "The real test with then has not been passed."() {
given: "I have a test and a factory"
def aTest = new SimpleFailedThenTest()
def factory = new TestCommandFactory();
and: "I have a testCommand"
def test = factory.create(aTest)
and: "I have a test runner"
@Subject
def runner = new SimpleTestRunner(test)
when: "The testCommand has been run"
def result = runner.run()
then: "The result is true"
!result
}
}
Loading…
Cancel
Save