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 文件实现
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功能并单击在视图中运行所有测试。
结果显示为1 Passed以及执行持续时间。单击选项打开此结果的其他输出以获取结果详细信息。
显示每个测试步骤的执行结果。
功能文件中的所有步骤均会执行,状态为完成。此外,步骤定义文件中的相应方法也会与执行持续时间一起显示。