Search in sources :

Example 21 with Pickle

use of io.cucumber.core.gherkin.Pickle in project cucumber-jvm by cucumber.

the class RunnerTest method aftersteps_are_executed_after_failed_step.

@Test
void aftersteps_are_executed_after_failed_step() {
    StubStepDefinition stepDefinition = spy(new StubStepDefinition("some step") {

        @Override
        public void execute(Object[] args) {
            super.execute(args);
            throw new RuntimeException();
        }
    });
    Pickle pickleMatchingStepDefinitions = createPickleMatchingStepDefinitions(stepDefinition);
    final HookDefinition afterStepHook = createHook();
    TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {

        @Override
        public void loadGlue(Glue glue, List<URI> gluePaths) {
            glue.addAfterHook(afterStepHook);
            glue.addStepDefinition(stepDefinition);
        }
    };
    runnerSupplier.get().runPickle(pickleMatchingStepDefinitions);
    InOrder inOrder = inOrder(afterStepHook, stepDefinition);
    inOrder.verify(stepDefinition).execute(any(Object[].class));
    inOrder.verify(afterStepHook).execute(any(TestCaseState.class));
}
Also used : Pickle(io.cucumber.core.gherkin.Pickle) InOrder(org.mockito.InOrder) Glue(io.cucumber.core.backend.Glue) Collections.singletonList(java.util.Collections.singletonList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) StaticHookDefinition(io.cucumber.core.backend.StaticHookDefinition) HookDefinition(io.cucumber.core.backend.HookDefinition) Test(org.junit.jupiter.api.Test)

Example 22 with Pickle

use of io.cucumber.core.gherkin.Pickle in project cucumber-jvm by cucumber.

the class RunnerTest method steps_are_executed.

@Test
void steps_are_executed() {
    StubStepDefinition stepDefinition = new StubStepDefinition("some step");
    Pickle pickleMatchingStepDefinitions = createPickleMatchingStepDefinitions(stepDefinition);
    TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {

        @Override
        public void loadGlue(Glue glue, List<URI> gluePaths) {
            glue.addStepDefinition(stepDefinition);
        }
    };
    runnerSupplier.get().runPickle(pickleMatchingStepDefinitions);
    assertThat(stepDefinition.getArgs(), is(equalTo(emptyList())));
}
Also used : Pickle(io.cucumber.core.gherkin.Pickle) Glue(io.cucumber.core.backend.Glue) Collections.singletonList(java.util.Collections.singletonList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) Test(org.junit.jupiter.api.Test)

Example 23 with Pickle

use of io.cucumber.core.gherkin.Pickle in project cucumber-jvm by cucumber.

the class RunnerTest method aftersteps_executed_for_passed_step.

@Test
void aftersteps_executed_for_passed_step() {
    StubStepDefinition stepDefinition = spy(new StubStepDefinition("some step"));
    Pickle pickle = createPickleMatchingStepDefinitions(stepDefinition);
    HookDefinition afteStepHook1 = createHook();
    HookDefinition afteStepHook2 = createHook();
    TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {

        @Override
        public void loadGlue(Glue glue, List<URI> gluePaths) {
            glue.addAfterHook(afteStepHook1);
            glue.addAfterHook(afteStepHook2);
            glue.addStepDefinition(stepDefinition);
        }
    };
    runnerSupplier.get().runPickle(pickle);
    InOrder inOrder = inOrder(afteStepHook1, afteStepHook2, stepDefinition);
    inOrder.verify(stepDefinition).execute(any(Object[].class));
    inOrder.verify(afteStepHook2).execute(any(TestCaseState.class));
    inOrder.verify(afteStepHook1).execute(any(TestCaseState.class));
}
Also used : Pickle(io.cucumber.core.gherkin.Pickle) InOrder(org.mockito.InOrder) Glue(io.cucumber.core.backend.Glue) Collections.singletonList(java.util.Collections.singletonList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) StaticHookDefinition(io.cucumber.core.backend.StaticHookDefinition) HookDefinition(io.cucumber.core.backend.HookDefinition) Test(org.junit.jupiter.api.Test)

Example 24 with Pickle

use of io.cucumber.core.gherkin.Pickle in project cucumber-jvm by cucumber.

the class RunnerTest method steps_are_not_executed_on_dry_run.

@Test
void steps_are_not_executed_on_dry_run() {
    StubStepDefinition stepDefinition = new StubStepDefinition("some step");
    Pickle pickle = createPickleMatchingStepDefinitions(stepDefinition);
    RuntimeOptions runtimeOptions = new RuntimeOptionsBuilder().setDryRun().build();
    TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {

        @Override
        public void loadGlue(Glue glue, List<URI> gluePaths) {
            glue.addStepDefinition(stepDefinition);
        }
    };
    runnerSupplier.get().runPickle(pickle);
    assertThat(stepDefinition.getArgs(), is(nullValue()));
}
Also used : Pickle(io.cucumber.core.gherkin.Pickle) Glue(io.cucumber.core.backend.Glue) RuntimeOptionsBuilder(io.cucumber.core.options.RuntimeOptionsBuilder) Collections.singletonList(java.util.Collections.singletonList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) RuntimeOptions(io.cucumber.core.options.RuntimeOptions) Test(org.junit.jupiter.api.Test)

Example 25 with Pickle

use of io.cucumber.core.gherkin.Pickle in project cucumber-jvm by cucumber.

the class PickleRunnerWithStepDescriptionsTest method shouldUseScenarioNameForDisplayName.

@Test
void shouldUseScenarioNameForDisplayName() {
    List<Pickle> pickles = picklesFromFeature("featurePath", "" + "Feature: feature name\n" + "  Scenario: scenario name\n" + "    Then it works\n");
    PickleRunner runner = PickleRunners.withStepDescriptions(context, pickles.get(0), null, createJunitOptions());
    assertEquals("scenario name", runner.getDescription().getDisplayName());
}
Also used : PickleRunner(io.cucumber.junit.PickleRunners.PickleRunner) Pickle(io.cucumber.core.gherkin.Pickle) Test(org.junit.jupiter.api.Test)

Aggregations

Pickle (io.cucumber.core.gherkin.Pickle)39 Test (org.junit.jupiter.api.Test)37 PickleRunner (io.cucumber.junit.PickleRunners.PickleRunner)6 Collections.singletonList (java.util.Collections.singletonList)6 List (java.util.List)6 Glue (io.cucumber.core.backend.Glue)5 Collections.emptyList (java.util.Collections.emptyList)5 Feature (io.cucumber.core.gherkin.Feature)4 URI (java.net.URI)4 HookDefinition (io.cucumber.core.backend.HookDefinition)3 StaticHookDefinition (io.cucumber.core.backend.StaticHookDefinition)3 Step (io.cucumber.core.gherkin.Step)3 InOrder (org.mockito.InOrder)3 Location (io.cucumber.plugin.event.Location)2 DataTableArgument (io.cucumber.core.gherkin.DataTableArgument)1 FeatureParser (io.cucumber.core.gherkin.FeatureParser)1 FeatureParserException (io.cucumber.core.gherkin.FeatureParserException)1 RuntimeOptions (io.cucumber.core.options.RuntimeOptions)1 RuntimeOptionsBuilder (io.cucumber.core.options.RuntimeOptionsBuilder)1 Gherkin (io.cucumber.gherkin.Gherkin)1