gpt4 book ai didi

testing - SpecFlow - 如何使用 NUnits TestCaseSource 属性等数据驱动测试?

转载 作者:行者123 更新时间:2023-11-28 20:45:03 24 4
gpt4 key购买 nike

我是一名 QA,决定使用 SpecFlow经过一番考虑后,我的测试自动化。我认为它很棒,但缺少一个我经常与其他测试运行程序(如 NUnit)一起使用的功能 - 类似于 TestCaseSource 的功能来自 NUnit 的属性,用于指定一组潜在的动态数据,以便在运行时针对要运行的测试进行测试。

我通常会在测试运行的每个环境中拥有不同的数据,因此无法为测试参数指定硬编码值。一个简单的例子是检查每种类型的用户帐户是否能够登录,可以使用数据库查询检索用户帐户凭据以在 NUnit 中动态填充每个测试用例:

public List<User> GetTestData()
{
List<User> testData = new List<User>();
testData = MyDatabase.GetAllUsersInfo().ToList();

return testData;
}

[Test, TestCaseSource("GetTestData")]
public void CallLoginService(User user)
{
var response = LoginController.TryLogin(User.UserName, User.Password);

if (response.Error != null)
{
Assert.Fail("Failed to Login: {0}", response.Error);
}

Assert.AreEqual("Logged in ok", response.Message, "Login message not as expected");
}

显然这是该功能的一个简单示例,但我认为它描述得足够好。我知道我们可以在 SpecFlow 中使用场景大纲和测试运行输入数据表,但这仍然是静态的,因此不符合要求。

我已经找了一段时间,但在 SpecFlow 中还没有找到任何类似的东西,有没有人知道可以使用与上述类似的东西(或者如果从事该项目的任何人阅读此内容,则计划使用)?

谢谢:)

最佳答案

我不知道是否有这样的计划,但目前的问题是当您通过 Visual Studio 编辑功能文件时有一个后台代码生成步骤。

当它保存在 Visual Studio 中时,它会被解析并转换为 feature.cs 文件,该文件将被编译并用于测试。

所以你的流程会变成

  • 编辑您的数据源
  • 导出到特征文件
  • 获取 specflow 的 VS 插件以转换为 feature.cs
  • 运行 msbuild
  • 通过 Nunit 或类似工具运行测试

我不会这样做。相反,我会专注于让我的测试成为更好的例子。听起来您要尝试详尽地涵盖所有可能性。不要想出例子来涵盖所有可能的情况,而是用更少的测试覆盖尽可能多的逻辑。

关于testing - SpecFlow - 如何使用 NUnits TestCaseSource 属性等数据驱动测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14747901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com