我有一个问题,即使用 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/- 测试用例源示例与解释。