是否存在c#框架/插件或模式来允许在测试中动态设置期望值?

本文关键字:测试 动态 期望值 设置 框架 存在 插件 模式 是否 | 更新日期: 2023-09-27 18:08:12

在我的解决方案中有许多单元测试。我在用NUnit,到处都有很多断言,比如Assert。someVar AreEqual(5日)。

这种测试期望数与实际数的模式重复了很多次。

我正在进行的项目涉及到对产生这些数字的模型进行大量调整。我目前的流程是,我将根据需求调整模型,这将像预期的那样抛出所有单元测试。然后开始的是手动更新Assert中的所有期望值以匹配新的实际值的过程,以便我的单元测试停止中断,直到需要对模型进行另一次调整。

我的问题是,是否存在一个插件或一种模式,使断言中的所有预期数字都可以在我需要时自动更新为实际值?

是否存在c#框架/插件或模式来允许在测试中动态设置期望值?

尝试设置一个通用的起始值,您可以在不重新计算断言的情况下更改。

例如,假设您正在使用。addone()和。timetwo()方法执行ICalculator

可以设置_startingNumber = 1
AddOne的测试()Assert(_startingNumber + 1, result)
测试TimesTwo() Assert(_startingNumber * 2, result)

当你改变_startingNumber你的断言保持正确
如果您断言逻辑而不是值,您可以尝试查找表

    _lookup = new Dictionary<string, string>();
    _lookup.Add("SaveStatus", "SaveValue");
    _lookup.Add("DeletedStatus", "DeletedValue");

那么你的断言看起来像assert (_lookup["SaveStatus"], result)

所以如果今天你期待的是"SaveValue"但是明天你期待的是"SaveValueNew"你可以在查找中改变它,但是所有期望保存状态的断言都是正确的

我不确定你处理这件事的方式是否正确。

您的单元测试显示当前模型按预期工作。

如果你要改变你的模型,你应该首先改变你的单元测试断言,使它们匹配你想要你的模型的行为。

然后更改模型并运行单元测试,看看是否一切正常。

首先更改模型,然后自动更改测试中的断言值,以便它们与更改后的模型生成的值相匹配,从而使单元测试有效地无效。他们不能告诉你你实现模型变更的方式是否有任何问题。

这听起来像在嘲笑

您可以在VS.

中安装NuGet包。