c# - 将结果添加到 TestCaseSource
问题描述
我有一个简单的方法,可以从列表中计算给定的计算。我想为此方法编写一些测试。
我正在使用 NUnit。我正在使用 TestCaseSource 因为我试图将列表作为参数。我有这个问题的解决方案。我的测试如下所示:
[TestFixture]
public class CalcViewModelTests : CalcViewModel
{
private static readonly object[] _data =
{
new object[] { new List<string> { "3", "+", "3" } },
new object[] { new List<string> { "5", "+", "10" } }
};
[Test, TestCaseSource(nameof(_data))]
public void Test(List<string> calculation)
{
var result = SolveCalculation(calculation);
Assert.That(result, Is.EqualTo("6"));
}
}
我想测试多个计算,例如使用 testCases。
TestCases 有Result 参数。如何将 Result 添加到 TestCaseSource 以便我可以测试多个计算?
解决方案
您可以TestCaseData
为此使用属性。它允许您将测试数据封装在一个单独的类中并重用于其他测试
public class MyDataClass
{
public static IEnumerable TestCases
{
get
{
yield return new TestCaseData("3", "+", "3").Returns("6");
yield return new TestCaseData("5", "+", "10").Returns("15");
}
}
}
[Test]
[TestCaseSource(typeof(MyDataClass), nameof(MyDataClass.TestCases))]
public string Test(List<string> calculation)
{
var result = SolveCalculation(calculation);
return result;
}
推荐阅读
- javascript - 如何从 mongodb 聚合中获取值
- javascript - 如何使用 jsPDF 和 canvas 生成 PDF?
- java - 如何在 IntelliJ IDEA 中将 AwesomeFontFX 图标包添加到 JavaFX 项目?
- python - 如何加快相机捕获并使用 Python 套接字通过 Mesh 网络发送的图像的传输速率
- ios - NativeScript - iOS - 获取/列出用户共享照片库中的所有照片
- ssh - ssh 隧道上的 SCP
- excel - 如何为单元格赋值?
- python - 计算当前下载速度的逻辑
- php - 尝试订阅“Google 我的商家”帐户以接收通知时出现异常
- networking - localhost 代理如何工作以及它与“普通/服务器代理”有何不同