Specflow进阶-(10)Scope and Tag

本文介绍了Specflow中StepDefinition的全局与局部应用,特别是在处理相同步骤定义但需根据不同条件执行不同操作的情况。通过添加Scope特性和Tag,可以限制步骤定义的适用范围,例如按地区区分。在Scenario中添加对应的Tag,确保每个Scenario只匹配一个StepDefinition,避免执行冲突。同时,警告读者在使用Feature或Scenario范围限定时要注意名称变更的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你有可能会注意到,Specflow中的StepDefinition是“全局的”。就是说,写好的一个步骤定义,可以在多个Scenario甚至是多个Feature文件中编写Step来使用该步骤定义。

试想有这样的需求,有一句Step,模拟手机拨号

Given I have dialed number 132098

相应地,有StepDefinition

        [Given(@"I have dialed number (.*)")]
        public void GivenIHaveDialedNumber(string number)
        {
            
        }

如果这个Step要求在某些地区都要工作,例如在港澳台

        // in Hongkong
        [Given(@"I have dialed number (.*)")]
        public void GivenIHaveDialedNumber(string number)
        {
            string actualNumber = "852" + number;

            // dial with actualNumber
        }

而StepDefinition是全局的,意味着,上面两个步骤定义是不能同时存在的(即使他们在不同的StepDefinition.cs文件),因为这会导致在执行Given语句的时候,Specflow发现了步骤的两个定义都可以匹

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值