【发布时间】:2015-11-25 13:43:23
【问题描述】:
我是 NUnit 新手,对 SpecFlow 测试框架和 NUnit 测试框架感到困惑。
现有项目使用 NUnit,如下所示。所有具有 [Test] 属性的方法都显示在 NUnit GUI 中(如果我从方法中删除 [Test],则测试用例不会显示在 NUnit GUI 中):
[TestFixture]
public class AccountTest
{
[Test]
public void TransferFunds()
{
Account source = new Account();
source.Deposit(200m);
}
[Test]
public void TransferWithInsufficientFunds()
{
}
}
当我在同一个项目中使用 SpecFlow 进行编码时,SpecFlow 框架是不同的,从 [Given]、[When]、[Then] 开始。每个 SpecFlow 场景都显示在 Nunit GUI 上。
我正在做的是将每个 [Test] 方法替换为一个 SpecFlow 方法。 例如:
[Test]
public void TransferFunds()
{
Account source = new Account();
source.Deposit(200m);
}
转向
[Then(@"I Transfer Funds")]
public void ITransferFunds()
{
Account source = new Account();
source.Deposit(200m);
}
这是我的问题:
看起来 SpecFlow 无法识别 NUnit 属性 [Test] 或 [Setup]。用SpecFlow做项目,是不是需要去掉所有的NUnit框架,换成SpecFlow的框架?
我可以看到有很多文章在谈论“SpecFlow + NUnit”,但它们要么是 SpecFlow [Given]、[When]、[Then],要么是 NUnit [Test]、[TestCase]。如何使两者在一个项目中工作还是我对 NUnit 的理解完全错误?
我的问题可能非常入门,感谢您的回答!
【问题讨论】: