我有一些单元测试正在测试第三方REST API的代理(仅限GET)。此API返回的数据可能会更改,有时根本没有数据。这意味着有时,我无法检查我的代码是否有效。 当他们没有检查所有内容时,我不想让我的测试通过,而且每次没有数据时我也不希望它失败。 我正在使用Test,我注意到,测试中存在“Test was not run”状态,在某些情况下会分配给测试。我可以从我的单元测试代码中明确地调用这个状态,或者这是一个坏主意,并且这是一种众所周知的做法适用于这种情况吗?
答案 0 :(得分:2)
查看TestCategory属性。对于因上游层而可能失败的所有测试,我们将这些测试标记为Integration。然后,您可以在测试资源管理器中按特征过滤测试。
[TestMethod, TestCategory("Integration")]
public void MyTest()
答案 1 :(得分:2)
当您确定没有要测试的结果时,您应该执行的操作是调用Assert.Inconclusive()。测试资源管理器将显示结果,您还可以提供描述性字符串以指示发生了什么。
例如:
[Test}
public void TestGetResults()
{
.. do GET operation
if (getfailed)
{
Assert.Inconclusive("Unable to get data for test.";
return;
}
}