Search code examples
c#asp.netbddfitnessefitsharp

How do i write BDD scenarios in fitnesse with .Net like Given when then format using Fitsharp


We need to write scenarios in Fitnesse in Given When Then (Gherkin) Is there any way to do this? like in java GivWenZen

we are using fitnesse in .Net 4.0 using Fitsharp.

scenario: Existing Fitnesse table-

!define TEST_SYSTEM {fit}
!define COMMAND_PATTERN {%m -r fitnesse.fitserver.FitServer %p}
!define TEST_RUNNER {D:\API_TC_Setup\Fitnesse\Runner.exe}


!path D:\API_TC_Setup\FitnesseBDDDemo\FitnesseBDDDemo\bin\Debug\FitnesseBDDDemo.dll

|configure|processor|add operator|findmemberpattern|

!|import |
| FitnesseBDDDemo|
|Class1|
|Given User should login|
|When User place an Order|
|Then Order should present in market|

Here is the code for above scenario

namespace FitnesseBDDDemo
   {
   public class Class1
      {
      [MemberPattern ( "Given User should login" )]
      public void LoginUser1( )
         {
         Console.WriteLine ( "Executing loggin-" );
         }
      //When User place an Order
      [MemberPattern ( "When User place an Order" )]
      public void PlaceOrder( )
         {
         Console.WriteLine ( " Order placing-" );
         }
      //Then Order should present in market
      [MemberPattern ( "Then Order should present in market" )]
      public void OrderInMarket( )
         {
         Console.WriteLine ( "Order in market-" );
         }
      }
   }

Error -

No error my scenario is Ignored while executing Please look this snap

FitnesseResult


Solution

  • You can use the FindMemberPattern operator See: http://fitsharp.github.io/Fit/FindMemberPatternOperator.html

    Your test could be:

    (These lines could go on an ancestor page)

    !define TEST_SYSTEM {fit}
    !define COMMAND_PATTERN {%m -r fitnesse.fitserver.FitServer %p}
    

    (This next line could go on a SetUp page)

    |configure|processor|add operator|findmemberpattern|
    
    |Place Order|
    |Given User user1 should login|
    |When Placing Bid Order|
    |Then Order Available In Market|
    

    Your code would contain:

    [MemberPattern("Given User (.*) should login")]
    public bool LoginUser(string user) { ... }
    
    [MemberPattern("When Placing (.*) Order")]
    public bool PlacingOrder(string side) { ... }
    
    [MemberPattern("Then Order Available In Market")]
    public bool OrderAvailableInMarket() { ... }