NUnit单元测试注意事项

  1. 命名规范
被测试的对象测试本身要新建的对象
项目新建一个名为[被测项目].Tests的测试项目
至少为每个被测试类新建一个名为[类名]Tests的类
方法至少为每个被测试方法新建一个名为[方法名][测试场景][预期行为]的方法
  1. 单元测试方法主题需要包含的三要素:
  • 配置对象,根据需要新建和设置它们
  • 操控对象
  • 通过断言判断结果是否符合预期
public void IsVaildFileName_validFileLowerCased_ReturnTrue()
{
//arrange
LogAnalyzer analyzer = new LogAnalyzer();
//act
bool result = analyzer.IsValidLogFileName("whatever.slf");
//assert
Assert.IsTrue(result,"filename should be valid!");
}
  1. 所有的单元测试方法都必须是public void的
  2. 对异常的验证
    Assert.Throws(typeof(ArgumentOutOfRangeException), () => program.DoSomething(-3));
  3. 标签用法及含义
标签用法含义
[TestFixture]标记此类为单元测试类
[Test]标记此方法为单元测试方法
[SetUp]单元测试开始之前调用的方法
[TearDown]单元测试结束之后调用的方法
[Ignore(“这个测试忽略”)]忽略某个测试方法
[Category(“运行快的测试”)]设置测试类别

如果被测方法依赖于外部资源又会怎样呢?比如依赖于文件系统、数据库、Web服务或者任何我们很难控制的其他东西。这正是我们开始新建测试桩对象(stub)、伪对象(fake)和模拟对象(mock)的时候

桩对象:测试是无法控制依赖项的返回值或其行为的(比如我们要模拟一个异常)。此时需要桩对象

外部依赖是指在系统中代码与其交互的对象,而且无法对其做人为控制。(最常见的例子是文件系统、线程、内存和时间等)

桩对象是对系统中现有依赖项的一个替代品,可人为控制。通过使用桩对象,无需涉及依赖项,即可直接对代码进行测试。

任何面向对象的问题都可以通过添加一个间接层来解决,除非有太多的间接层。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值