A-A+

【Nunit】ValueSourceAttribute (NUnit 2.5)

2014年11月04日 Nunit 评论 2 条 阅读 759 次

ValueSourceAttribute (NUnit 2.5)

ValueSourceAttribute 特性用来为测试方法的参数提供数据源且指定数据源的名称,这个特性有两个构造方法。

ValueSourceAttribute(Type sourceType, string sourceName);
ValueSourceAttribute(string sourceName);

如果指定了sourceType,就意味着类会提供数据。同时这个类必须有一个默认构造函数。

如果没有指定sourceType,又使用了这种测试方法,NUnit会使用默认构造函数或者使用提供的参数及对应构造函数初始化类。

sourceName代表为参数提供数据源的名称,这个数据源有以下特征:

  • 可能是字段、非索引属性、无参数方法
  • 可以使实例化、静态化成员
  • 必须返回一个 IEnumerable 值,或者 实现了IEnumerable接口的类型
  • 返回的选项必须与参数类型兼容。

Order of Execution

在NUnit 2.5,测试用例按照字母顺序排序并执行。在NUnit 2.5.1,测试用例不进行排序,但会根据发现的顺序执行。发现顺序不会根据特性的词法顺序来,而且不同的编译器或CLR版本不同顺序也不同。

因此,ValueSourceAttribute特性在一个参数上出现多次,或者与其他提供数据特性结合使用时,参数顺序可以不指定。

然后,使用了一个ValueSourceAttribute特性时,参数顺序会严格按照源返回的数据顺序。

Note on Object Construction

NUnit在加载测试时生成测试用例,创建每个类的实例及非静态源,生成一个即将执行的列表。每个源都行都在此时创建一次,在所有测试执行完毕后销毁。

如果数据源在test fixture内部,则使用TestFixtureAttribute特性提供的参数及对应的构造方法来创建数据源对象,如果无参数则使用默认构造方法。由于这个对象在测试执行前销毁,所以只能通过参数进行通讯,而在不同的阶段或会话中没有任何的通信。

标签:

2 条留言  访客:2 条  博主:0 条

  1. avatar 挖金人

    支持博客,表示真心看不懂。

  2. avatar 厦门微信营销

    看不懂

评论已关闭!

Copyright © 极品飞鸽 保留所有权利.   Theme  Ality 蜀ICP备14015766号-1

用户登录

分享到: