NUnit Action特性简化单元测试编写

NUnit最新版本展示了Action特性,该特性能够编排套件、测试及测试用例上的测试行为。开发人员可以通过在他们的测试项目中应用Action特性封装测试活动,并将其应用于类、接口、方法和程序集,来管理setup(初始化)、teardown(结束清理)和测试端的其他行为。

当某个测试运行时,与之关联的所有Action特性会按照其定义顺序被调用两次,一次是BeforeTest事件,另一次是AfterTest事件。这种模式给予了开发人员对测试的setup和teardown行为的独立控制。

想要使用Action特性,开发人员首先要做的是定义新特性,定义的方法有两种:一种是通过实现ITestAction接口同时继承Attribute类;另一种是直接继承TestActionAttribute类。

下面的代码展示了通过实现ITestAction接口来定义Action特性:

而下面的代码则通过继承TestActionAttribute达到了类似的效果:

一旦创建好Action特性,就可以像任何普通的.NET特性一样,将其应用于测试项目中的方法、类、接口或程序集上。

NUnit的输出显示了Action特性的组合:

***** BankingTests.AccountTest.DepositFunds
Before via inheritance Case: AccountTest, from DepositFunds.
After via inheritance Case: AccountTest, from DepositFunds.
***** BankingTests.AccountTest.TransferFunds
Before via Interface Case: AccountTest, from TransferFunds.
After via Interface Case: AccountTest, from TransferFunds.

多个Action特性可应用于单个目标之上。如果Action特性定义在相同的括号里,那么执行顺序为从右至左;而如果它们单独定义,执行顺序则为至下往上。

当使用这种Action特性组合时,NUnit会在相同的测试中执行每一个Action。

***** BankingTests.AccountTest.TransferWithInsufficientFunds
Before via Interface Case: AccountTest, from TransferWithInsufficientFunds.
Before via inheritance Case: AccountTest, from TransferWithInsufficientFunds.
After via inheritance Case: AccountTest, from TransferWithInsufficientFunds.
After via Interface Case: AccountTest, from TransferWithInsufficientFunds.

Action特性可灵活重用应用于单元测试之上的多项功能。组合单元测试设置(setup)和行为(behavior)虽然可以大大提高测试人员的 平均生产力和效率,但同时也会对维护这些测试的开发人员隐藏重要的测试逻辑。如果使用不当,会让单元测试变得层化(layered)和钝拙 (obtuse)。

除了Action特性,NUnit还发布了共90个错误修复以及框架上的一些其他改动。此外,该版本还结束了对旧版NUnit和.NET的支持。随着2.6版本的发布,NUnit将不再支持早期版本引入的约定,而只支持.NET 2.0及后续更高版本。

转载于:https://www.cnblogs.com/shihao/archive/2012/03/13/2395209.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值