- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名 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 文件,该文件将被编译并用于测试。
所以你的流程会变成
我不会这样做。相反,我会专注于让我的测试成为更好的例子。听起来您要尝试详尽地涵盖所有可能性。不要想出例子来涵盖所有可能的情况,而是用更少的测试覆盖尽可能多的逻辑。
关于testing - SpecFlow - 如何使用 NUnits TestCaseSource 属性等数据驱动测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14747901/
我正在使用 NUnit 2.5.3 TestCaseSource 属性并创建一个工厂来生成我的测试。像这样的东西: [Test, TestCaseSource(typeof(TestCaseFacto
我使用带有 TestCaseSource 属性的 NUnit 以与 NUnit TestCaseSource pass value to factory 相同的方法对动态数据进行数据驱动测试。和 Ho
我有一个简单的方法,可以从列表中计算给定的计算。我想为此方法编写一些测试。 我正在使用 NUnit。我正在使用 TestCaseSource 因为我试图给出一个列表作为参数。我有这个 question
我有以下生成一组测试用例的方法! public IEnumerable PrepareTestCases(param1) { foreach (string entry in entries)
我想知道是否有办法使用 TestCaseSource在具有派生类以通用方式提供的数据的基础测试类中。 例如,如果我有以下基类: public abstract class Base { pro
我有一些使用 TestCaseSource 函数的 NUnit 测试。不幸的是,我需要的 TestCaseSource 函数需要很长时间来初始化,因为它递归地扫描文件夹树以查找将传递给测试函数的所有测
我正在尝试使用 NUnit 中的 TestCaseSource 运行多个测试。但是我很难让 [SetUp] 在我需要的时候运行。 目前它按照我想要的方式工作,但感觉不“正确”。所以下面是主要的测试用例
我最近开始使用 NUnit 为我的项目进行集成测试。这是一个很棒的工具,但我发现了一个我似乎无法解决的缺点。我所有的集成测试都使用 TestCaseSource 属性并为每个测试指定一个测试用例源名称
基于 https://gigi.nullneuron.net/gigilabs/data-driven-tests-with-nunit/网站。我尝试创建一个简单的测试用例,为将来读取数据做准备。但我
我想做的正是这个页面的第一个例子,但是...... http://nunit.org/index.php?p=testCaseSource&r=2.5 我可以改变的值(value) stati
我目前有一组单元测试,它们对于许多 Rest API 端点都是一致的。假设类是这样定义的。 public abstract class GetAllRouteTests { [Test] pu
我是一名 QA,决定使用 SpecFlow经过一番考虑后,我的测试自动化。我认为它很棒,但缺少一个我经常与其他测试运行程序(如 NUnit)一起使用的功能 - 类似于 TestCaseSource 的
我很难让 nUnit TestCaseSource 属性在 nUnit 2.6.4.14350 中正常工作。 当通过 VS2010 运行单元测试时,它只是说测试被忽略,没有关于原因的任何额外信息。 C
如何使用多个 TestCaseSource 属性为 N-Unit 2.62 中的测试提供测试数据? 我目前正在做以下事情: [Test, Combinatorial, TestCaseSource(t
我有一系列测试,我想在其中使用相同的测试用例数据来进行一系列不同的测试。 例如: [Test, TestCaseSource("TestData")] public void Test1(Foo fo
在使用 NUnit 编写单元测试时,您可以使用 TestCaseSourceAttribute 提供多个数据输入组合。来自 NUnit's documentation 的示例: private sta
是否可以将NUnit的[TestCaseSource]属性与多个参数一起使用?这是我的代码(正在从MbUnit迁移): public IEnumerable GetTestSwitchMultiIte
在我测试接收更复杂对象的方法的场景中,我通常使用类似于此的方法针对许多测试用例来测试该方法: [TestFixture()] public class DataTransmitterFactoryTe
我在 VS2013 中使用 TFS。我在编写测试时使用 TestCaseSource: [Test] [TestCaseSource("GetExtraWifQuestionsTestData")]
对于像 2 或 4 这样的每个预期返回值,我想将此值作为单元测试方法的参数传递。但是我得到一个异常,参数不正确。当我删除 countExpected 参数时,单元测试运行良好,我只是无法断言 coun
我是一名优秀的程序员,十分优秀!