ApprovalTests with TestCase (Nunit) 使用相同的批准文件
ApprovalTests with TestCase (Nunit) use the same approval file
我遇到一个问题,即使用 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
}
您可以使用 [TestCaseSource] 属性而不是 [TestCase] 属性。
https://ignas.me/tech/nunit-testcasesource-example/ - 带有解释的 TestCaseSource 示例。
你需要使用
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
我遇到一个问题,即使用 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
}
您可以使用 [TestCaseSource] 属性而不是 [TestCase] 属性。
https://ignas.me/tech/nunit-testcasesource-example/ - 带有解释的 TestCaseSource 示例。
你需要使用
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