C# 给定/何时/然后-我可以使用“给定”吗;声明;在多个操作中,表示给定,并且当两者同时存在时
假设我得到了给定步骤的BDD特征文件C# 给定/何时/然后-我可以使用“给定”吗;声明;在多个操作中,表示给定,并且当两者同时存在时,c#,automation,bdd,acceptance-testing,gherkin,C#,Automation,Bdd,Acceptance Testing,Gherkin,假设我得到了给定步骤的BDD特征文件 Given User is logged in as administrator When some functionality line Then some functionality line 我想用“用户以管理员身份登录”作为一个When语句,在其他一些场景中,我怎样才能做到这一点 我试着写作 [Given,When(@"User is logged in as administrator")] public void abc(){ //my op
Given User is logged in as administrator
When some functionality line
Then some functionality line
我想用“用户以管理员身份登录”作为一个When语句,在其他一些场景中,我怎样才能做到这一点
我试着写作
[Given,When(@"User is logged in as administrator")]
public void abc(){
//my operation
}
specflow允许我使用(cntrl+空格键)以这种方式编写,但如果我尝试导航,它只会导航到“当用户以管理员身份登录时”
它只导航到您写入的最后一个值[给定,当(“…”)]。在这里,它导航到何时
在某些情况下,我如何使其适用于这两种语句
管理员登录语句是一个先决条件,但在某些情况下
我必须登录,这是一个我需要执行的操作,因此还需要编写与“When”语句相同的语句
有没有什么方法可以让我在什么时候使用相同的语句
提前感谢首先,我想检查一下您是否真的需要“何时”
如果您实际上没有编写自定义登录功能,请考虑删除“何时”的场景。登录,一经编写,很少更改,并且很容易与其他功能分离。手动测试它,然后让它单独运行。不过,可以使用该功能为其他场景设置登录帐户
如果您将登录步骤作为更大的步骤的一部分使用,并且有多个When,那么您可能希望找到一种方法,将您尝试执行的操作表述为一个步骤,并在其中调用登录步骤。通常情况下,场景只有一个 如果两者都不适用,那么,好吧,您需要一个用户主动登录的场景。登录的行为很有趣,您想提供一个示例 从语言学的角度来看,我不想看到一个给定的短语和一个When的相同 给定的概念是,你如何到达那里并不重要。这种行为对于场景来说并不重要。该步骤描述存在的上下文。用户已登录。他们是如何登录的?谁知道呢?谁在乎呢?这不重要 但是,当操作处于活动状态时。某人或某事正在执行一项活动。用户登录 所以,我更愿意看到:[Given(@"User is logged in as an adminstrator")]
[When(@"User logs in as administrator")]
public void abc(){
//my operation
}
以及与之匹配的步骤。这仍然允许您暂时重用您的功能,但它也为您提供了以后将它们分开的选项。例如,如果登录是一个昂贵的步骤,并且您决定在所有这些场景中重新使用登录帐户,而在这些场景中,登录帐户只是一个给定的帐户,那么这一点可能很重要
@@Lunivore。。。我知道如果我们用同样的台词,我们可能听起来有点奇怪。。不过登录只是为了表达一个问题。。我找到了我要找的东西。。谢谢