2

我有一个问题,即使用 ApprovalTests.Net 和 NUnit 运行的所有测试都使用相同的批准文件,该文件的名称源自测试方法名称。

是否可以以某种方式为每个测试用例指定单独的批准文件?

[Test]
[TestCase("test",TestName="Test1")]
[TestCase("test2",TestName="Test2")]
Testing_Method(string param)
{
   //somestuff
   ObjectApprover.VerifyJson(someObject); // fails for second case 
                                          // because it uses the same 
                                          // approval file as the first case,
                                          // which is not the same
}
4

2 回答 2

4

你需要使用

ApprovalResults.ForScenario("extra info")

像这样:

[Test]
[TestCase("test",TestName="Test1")]
[TestCase("test2",TestName="Test2")]
Testing_Method(string param)
{
   //somestuff
   using (ApprovalTests.Namers.ApprovalResults.ForScenario(param))
   {
       ObjectApprover.VerifyJson(someObject); 
   }
}

这将产生 2 个批准文件:

TestClassName.Testing_Method.ForScenario.Test1.approved.json
TestClassName.Testing_Method.ForScenario.Test2.approved.json
于 2018-09-24T15:13:59.663 回答
0

您可以使用 [TestCaseSource] 属性代替 [TestCase] 属性。

https://ignas.me/tech/nunit-testcasesource-example/ - 带有解释的 TestCaseSource 示例。

于 2018-03-02T12:41:45.690 回答