我目前正在使用SpecFlow创建一些用户验收测试。在我生成这些步骤之后,我注意到生成器会为不同场景中的每个步骤创建一个步骤,看起来是相同的。
问题是,因为我试图描绘的每个场景都是不同的,即使他们可能使用相同的方法调用,我仍然希望使用模拟(Moq)来调整环境。鉴于所有场景步骤与生成的代码中的相同方法(步骤)看起来相同,这是相当困难的。
有人能够解释我应该怎么做或者我的方法是错的吗?
答案 0 :(得分:0)
您可以参数化Specflow步骤。您可能会采取以下步骤:
Given 'Bob' logs in
生成的步骤可能会打开参数以执行不同的方案。 e.g。
[Given(@"'(.*)' logs in")]
public static void GivenUserLogsIn(string user)
{
if (string.Equals("Bob")
DoBobScenario();
else if (string.Equals("Joe")
DoJoeScenario();
}
这与步骤名称完全相同,但参数可以让您区分您有兴趣测试的场景。