是否存在c#框架/插件或模式来允许在测试中动态设置期望值?
本文关键字:测试 动态 期望值 设置 框架 存在 插件 模式 是否 | 更新日期: 2023-09-27 18:08:12
在我的解决方案中有许多单元测试。我在用NUnit,到处都有很多断言,比如Assert。someVar AreEqual(5日)。
这种测试期望数与实际数的模式重复了很多次。
我正在进行的项目涉及到对产生这些数字的模型进行大量调整。我目前的流程是,我将根据需求调整模型,这将像预期的那样抛出所有单元测试。然后开始的是手动更新Assert中的所有期望值以匹配新的实际值的过程,以便我的单元测试停止中断,直到需要对模型进行另一次调整。
我的问题是,是否存在一个插件或一种模式,使断言中的所有预期数字都可以在我需要时自动更新为实际值?
尝试设置一个通用的起始值,您可以在不重新计算断言的情况下更改。
例如,假设您正在使用。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.