All Projects → marcusoftnet → Specflow.assist.dynamic

marcusoftnet / Specflow.assist.dynamic

Licence: mit
Extension methods to create dynamic objects from SpecFlow tables

Labels

Projects that are alternatives of or similar to Specflow.assist.dynamic

flutter gherkin
A Gherkin parsers and runner for Dart and Flutter which is very similar to cucumber
Stars: ✭ 160 (+255.56%)
Mutual labels:  cucumber
Cucumber Boilerplate
Boilerplate project to run WebdriverIO tests with Cucumber
Stars: ✭ 411 (+813.33%)
Mutual labels:  cucumber
Aruba
Test command-line applications with Cucumber-Ruby, RSpec or Minitest. The most up to date documentation can be found on Cucumber.Pro (https://app.cucumber.pro/projects/aruba)
Stars: ✭ 900 (+1900%)
Mutual labels:  cucumber
web-automation
BDD tests with Cucumber, WebdriverIO and Docker Selenium
Stars: ✭ 114 (+153.33%)
Mutual labels:  cucumber
Jest Cucumber
Execute Gherkin scenarios in Jest
Stars: ✭ 347 (+671.11%)
Mutual labels:  cucumber
Cucumber Js
Cucumber for JavaScript
Stars: ✭ 4,383 (+9640%)
Mutual labels:  cucumber
cucumber
Cucumber testing framework for Rust. Fully native, no external test runners or dependencies.
Stars: ✭ 322 (+615.56%)
Mutual labels:  cucumber
Oerpscenario
Business Driven Development (BDD) for OpenERP/Odoo
Stars: ✭ 32 (-28.89%)
Mutual labels:  cucumber
Behat
BDD in PHP
Stars: ✭ 3,696 (+8113.33%)
Mutual labels:  cucumber
Webdriverio
Next-gen browser and mobile automation test framework for Node.js
Stars: ✭ 7,214 (+15931.11%)
Mutual labels:  cucumber
bat
Gherkin based DSL for testing HTTP APIs via Cucumber.JS
Stars: ✭ 30 (-33.33%)
Mutual labels:  cucumber
Cucumber
A monorepo of common components - building blocks for implementing Cucumber in various languages.
Stars: ✭ 3,299 (+7231.11%)
Mutual labels:  cucumber
Karate
Test Automation Made Simple
Stars: ✭ 5,497 (+12115.56%)
Mutual labels:  cucumber
CodeSpecJS
UI Automation Testing without writing a single line of code
Stars: ✭ 16 (-64.44%)
Mutual labels:  cucumber
Cuke linter
A linting tool for Cucumber
Stars: ✭ 24 (-46.67%)
Mutual labels:  cucumber
gherkin
Pure Rust implementation of Gherkin language (`.feature` file) for Cucumber testing framework.
Stars: ✭ 41 (-8.89%)
Mutual labels:  cucumber
Knapsack
Knapsack splits tests evenly across parallel CI nodes to run fast CI build and save you time.
Stars: ✭ 430 (+855.56%)
Mutual labels:  cucumber
Fabrication
This project has moved to GitLab! Please check there for the latest updates.
Stars: ✭ 1,017 (+2160%)
Mutual labels:  cucumber
Cucumber Protractor Harness
Simple starter project for incorporating cucumber (2.3.1) with protractor
Stars: ✭ 9 (-80%)
Mutual labels:  cucumber
Appiumtestdistribution
A tool for running android and iOS appium tests in parallel across devices... U like it STAR it !
Stars: ✭ 764 (+1597.78%)
Mutual labels:  cucumber

SpecFlow.Assist.Dynamic

SpecFlow.Assist.Dynamic is a couple of simple extension methods for the SpecFlow Table object that helps you to write less code.

What would you rather write? This:

[Binding]
public class StepsUsingStaticType
{
    private Person _person;

    [Given(@"I create an instance from this table")]
    public void GivenICreateAnInstanceFromThisTable(Table table)
    {
        _person = table.CreateInstance<Person>();
    }

    [Then(@"the Name property on Person should equal '(.*)'")]
    public void PersonNameShouldBe(string expectedValue)
    {
        Assert.AreEqual(expectedValue, _person.Name);
    }
}

// And then make sure to not forget defining a separate Person class for testing, 
// since you don't want to reuse the one your system under test is using - that's bad practice

// Should probably be in another file too...
// might need unit tests if the logic is complicated
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public DateTime BirthDate { get; set; }
    public double LengthInMeters { get; set; }
}

Or this:

[Binding]
public class StepsUsingDynamic
{
    private dynamic _instance;

    [Given(@"I create an instance from this table")]
    public void c(dynamic instance) { _instance = instance; }

    [Then(@"the Name property should equal '(.*)'")]
    public void NameShouldBe(string expectedValue) { Assert.AreEqual(expectedValue, _instance.Name);  }
}

The later version uses SpecFlow.Assist.Dynamic. Shorter, sweater and more fun!

well, this is may be one of the best usecase for dynamic i have ever seen

A happy SpecFlow.Assists.Dynamic user

Full documentation on the wiki

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].