当使用Fitsharp格式化时,我如何使用.Net之类的Given在fitnesse中编写BDD场景

本文关键字:Given fitnesse 场景 BDD Net 格式化 Fitsharp 何使用 | 更新日期: 2023-09-27 17:59:01

我们需要在Given When Then(Gherkin)中用Fitnesse编写场景有办法做到这一点吗?像在java中一样GivWenZen

我们正在使用Fitsharp在.Net 4.0中使用fitnesse。

场景:现有贴合度表-

!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|

这是上面场景的代码

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-" );
         }
      }
   }

错误-

没有错误我的场景在执行时被忽略请查看此快照

FitnesseResult

当使用Fitsharp格式化时,我如何使用.Net之类的Given在fitnesse中编写BDD场景

您可以使用FindMemberPattern运算符请参阅:http://fitsharp.github.io/Fit/FindMemberPatternOperator.html

你的测试可能是:

(这些行可能出现在祖先页面上)

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

(下一行可能出现在设置页面上)

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

您的代码将包含:

[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() { ... }