在单元测试方法中需要总结

Ji *_*lin 16 c# unit-testing mstest visual-studio

由于单元测试方法的命名使其目的更有意义,是否有必要向单元测试方法添加摘要?

例:

/// <summary>
/// Check the FormatException should be thrown when a give country data line contains a invalid number.
/// </summary>
[TestMethod]
public void FormatException_Should_Thrown_When_Parse_CountryLine_Containing_InvalidNumber()
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 43

我实际上更喜欢在摘要标记上使用DescriptionAttribute.原因是Description属性的值将显示在结果文件中.当您只是查看日志文件时,它会使故障更容易理解

[TestMethod,Description("Ensure feature X doesn't regress Y")]
public void TestFeatureX42() {
  ..
}
Run Code Online (Sandbox Code Playgroud)

  • Visual Studio 2017 也存在同样的问题。描述属性无用。 (3认同)
  • 你能评论一下现在测试资源管理器是如何与`Description` 属性集成的吗?我知道这篇文章很旧,但我从来不知道有一个专门针对测试的描述属性,我立即添加了一个来看看它的外观。令我惊讶的是,我在任何地方都看不到它。是否删除了该功能(在这种情况下,该属性不会被弃用吗?)还是我遗漏了什么? (2认同)
  • @julealgon至少在VS 2015中确实如此.即使测试运行失败,DescriptionAttribute也不会显示在IDE中的任何位置.我需要检查VSTest.Console的控制台记录器是否足够好,至少可以将它输出到控制台以进行失败的测试. (2认同)

jrc*_*cs3 10

我认为长描述性名称比XML注释更重要.由于单元测试不会成为API的一部分,因此您不需要XML注释.

例如:

[TestMethod]
public void FormatException_Should_Thrown_When_Parse_CountryLine_Containing_InvalidNumber()
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

比以下更有用:

///<summary>
/// Exception Should Thrown When Parse CountryLine Containing InvalidNumber
///</summary>
[TestMethod]
public void Test42()
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

XML注释应该用于记录API和框架.