| 资产 | 价值 |
|---|---|
| 规则 ID | MSTEST0053 |
| 标题 | 避免使用带格式参数的 Assert 方法 |
| 类别 | Usage |
| 修复是中断修复还是非中断修复 | Non-breaking |
| 默认启用 | 是的 |
| 默认严重性 | 警告 |
| 是在版本 中引入的 | 3.11.0 |
| 有修复代码的办法吗 | 是的 |
[注意]此分析器不再与 MSTest 4 相关,因为已删除带格式参数的断言 API。
原因
断言方法调用使用 message 和 parameters 参数进行字符串格式设置,而不是使用字符串内插。
规则说明
使用包含 message 和 parameters 的断言重载已经不再被推荐。 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 中删除,不建议这样做。