带有该属性的方法在执行每个TestMethod()之后调用。
ClassCleanup()
带有该属性的方法在执行 ALL 测试之后调用。
AssemblyCleanup()
在执行为执行选择的第一个TestClass()中的第一个TestMethod()之后,执行带有该属性的方法。
Description()
提供关于给定TestMethod()的描述。
Ignore()
由于某种原因忽略TestMethod()或TestClass()。
ExpectedException()
当测试特定异常时,如果使用该属性指定的异常不是从实现代码引发,则测试不会失败。
我编写什么类型的测试?一个方法及其相关测试之间很难有一对一关系。编写自动化单元测试需要开发人员“进行全面思考”,并了解关于对象的所有内容 — 它将如何消耗、使用、处理,以及在任何情况下如何起到积极、消极、非决定性作用。
例如,请考虑一个用于针对数据库中 Customer 项执行 CRUD(创建、检索、更新、删除)功能的典型对象方法。对于该对象的Load()方法,要针对以下方案编写测试:
•构造函数测试— 确保对象正确加载,带有正确的信息。
•PositiveLoadScalarTest— 测试数据库中一个 Customer 的成功加载。
•NegativeLoadScalarTest— 测试一个 Customer 的失败加载,即该 Customer 不在数据库中。
•PositiveLoadTest— 基于已知数据测试 Customer 的成功加载。
•NegativeLoadTest— 测试数据库中不存在的 Customer 的失败加载。
•NegativeValidationTest— 确保验证逻辑正确工作。
这些只是自动化单元测试套件许多用法中的一部分。我曾经听说一个小团队使用单元测试查看针对其组件的已知安全攻击。从宏观的角度来看,单元测试应该明确保证组件的正常使用。具有丰富的测试集将使团队确信您已经准确实现了既定的目标:编写有效的软件。无论自信源自哪里 — 这就是您需要编写的测试。
您测试什么?从本质上看,这些自动化单元测试非常低级。它们旨在测试下至构造函数、方法调用的对象,甚至是对象上的属性。
关于“公共对私有”的主题在单元测试派系中引发了许多争论。许多人认为单元测试只应该测试对象的公共接口。其他人认为应该测试每个调用 — 包括内部私有方法。VSTS 支持两个单元测试级别。VSTS 通过使用私有访问器或包装类支持私有测试,后者提供基于“私有”方法和属性生成单元测试的功能。
文章来源于领测软件测试网 https://www.ltesting.net/