ApprovalTests with TestCase (Nunit) 使用相同的审批文件



我有一个问题,即使用 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
}

你需要使用

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

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

https://ignas.me/tech/nunit-testcasesource-example/- 测试用例源示例与解释。

最新更新