pickled_cucumber 1.1.0 copy "pickled_cucumber: ^1.1.0" to clipboard
pickled_cucumber: ^1.1.0 copied to clipboard

A simple cucumber implementation for Dart, Dart Frog and Flutter.

example/lib/pickled_cucumber_example.dart

import 'package:pickled_cucumber/pickled_cucumber.dart';
import 'package:test/test.dart';

class ExampleStepDefinitions {
  late String today;
  late String answer;
  late int dayNumberAnswer;

  late double calculatorInput;

  late List<String> strings;

  final days = [
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
    'Saturday',
    'Sunday'
  ];

  @Given("today is Sunday")
  void todayIsSunday() {
    today = "Sunday";
  }

  @Given("today is Friday")
  void todayIsFriday() {
    today = "Friday";
  }

  @Given("today is {string}")
  void todayIs(String day) {
    today = day;
  }

  @When("I ask whether it's Friday yet")
  void iAskWhetherItsFridayYet() {
    if (today == "Friday") {
      answer = "Yes";
    } else {
      answer = "Nope";
    }
  }

  @When("I ask the number of the day")
  void whenIAskTheNumberOfTheDay() {
    final dayNumber = days.indexOf(today) + 1;
    dayNumberAnswer = dayNumber;
  }

  @Then("I should be told {string}")
  void iShouldBeTold(String string) {
    expect(answer, string);
  }

  @Then("it should be {int}")
  void thenItShouldBe(int dayNumber) {
    expect(dayNumberAnswer, dayNumber);
  }

  /// ---- CALCULATOR

  @Given("I have entered {float} into the calculator")
  void iHaveEnteredIntIntoTheCalculator(double number) {
    calculatorInput = number;
  }

  @When("I add {float}")
  void iAdd(double number) {
    calculatorInput += number;
  }

  @When("I subtract {float}")
  void iSubtract(double number) {
    calculatorInput -= number;
  }

  @Then("the result should be {float} on the screen")
  void theResultShouldBe(double result) {
    expect(calculatorInput, result);
  }

  /// ---- STRINGS

  @Given("two strings {string} and {string}")
  void iHaveTwoStringsAnd(String string1, String string2) {
    strings = [string1, string2];
  }

  @When("I concatenate the two strings")
  void iConcatenateTheTwoStrings() {
    strings = [strings.join("")];
  }

  @Then("I get {string}")
  void iGet(String string) {
    expect(strings.first, string);
  }

  /// ---- YES BUT

  @Given("the weather is cold")
  void theWeatherIsCold() {}

  @Given("the weather is hot")
  void theWeatherIsHot() {}

  @When("I wear a jacket")
  void iWearAJacket() {}

  @Then("I should not be cold")
  void iShouldNotBeCold() {}

  @Then("I should be too hot")
  void iShouldBeTooHot() {}

  @But("I should be stylish")
  void iShouldBeStylish() {}

  @But("I will not get sunburned")
  void iWillNotGetSunburned() {}
}
9
likes
150
pub points
35%
popularity

Publisher

verified publishermobile-tools.dev

A simple cucumber implementation for Dart, Dart Frog and Flutter.

Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

analyzer, build, code_builder, dart_style, file, source_gen, test

More

Packages that depend on pickled_cucumber