MSTEST0053:避免在格式参数中使用 Assert 方法

资产 价值
规则 ID MSTEST0053
标题 避免使用带格式参数的 Assert 方法
类别 Usage
修复是中断修复还是非中断修复 Non-breaking
默认启用 是的
默认严重性 警告
是在版本 中引入的 3.11.0
有修复代码的办法吗 是的

[注意]此分析器不再与 MSTest 4 相关,因为已删除带格式参数的断言 API。

原因

断言方法调用使用 messageparameters 参数进行字符串格式设置,而不是使用字符串内插。

规则说明

使用包含 messageparameters 的断言重载已经不再被推荐。 MSTest v4 中删除了这些重载。 建议改用字符串内插。

如何修复违规行为

将使用消息格式参数的调用替换为字符串内插。

例如,更改以下项:

[TestMethod]
public void TestMethod()
{
    int expected = 5;
    int actual = GetValue();
    Assert.AreEqual(expected, actual, "Expected {0} but got {1}", expected, actual);
}

更改为:

[TestMethod]
public void TestMethod()
{
    int expected = 5;
    int actual = GetValue();
    Assert.AreEqual(expected, actual, $"Expected {expected} but got {actual}");
}

何时禁止显示警告

不要禁止显示此规则的警告。 这些重载在 MSTest v4 中删除,不建议这样做。