SpecFlow - 创建第一个测试

我们现在将在类库中创建一个执行两个数字减法的文件。

using System;
namespace ClassLibrary2 {
   public class Class1 {
      public int Number1 { get; set; }
      public int Number2 { get; set; }
      public int Subtraction(){
         return Number1 - Number2;
      }
   }
}

Feature 文件实现

File Implementation

Step Definition 文件实现

上述 Feature 文件对应的 Step Definition 文件,以及使用 Class1 进行减法。

using ClassLibrary2;
using FluentAssertions;
using TechTalk.SpecFlow;
namespace SpecFlowCalculator.Specs.Steps { 
[Binding]
   public sealed class CalculatorStepDefinitions {
      private readonly ScenarioContext _scenarioContext;
      
      //instantiating Class1
      private readonly Class1 _calculator = new Class1();
      private int _result;
      public CalculatorStepDefinitions(ScenarioContext scenarioContext) {
         _scenarioContext = scenarioContext;
      }
      [Given("the first number is (.*)")]
      public void GivenTheFirstNumberIs(int number){
         _calculator.Number1 = number;
      }
      [Given("the second number is (.*)")]
      public void GivenTheSecondNumberIs(int number){
         _calculator.Number2 = number;
      }
      [When("the two numbers are subtracted")]
      public void WhenTheTwoNumbersAreSubtracted(){
         _result = _calculator.Subtraction();
      }
      [Then("the result should be (.*)")]
      public void ThenTheResultShouldBe(int result){
         _result.Should().Be(result);
      }
   }
}

执行测试

构建上述解决方案,然后在我们从测试 → 测试资源管理器获得构建成功消息后执行测试。

选择SpecFlowProject1功能并单击在视图中运行所有测试

SpecFlowProject

结果显示为1 Passed以及执行持续时间。单击选项打开此结果的其他输出以获取结果详细信息。

执行持续时间

显示每个测试步骤的执行结果。

执行结果

功能文件中的所有步骤均会执行,状态为完成。此外,步骤定义文件中的相应方法也会与执行持续时间一起显示。