繁体   English   中英

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

[英]Does there exist a c# framework/plugin or pattern to allow dynamic setting of expected values in tests?

我的解决方案中有许多单元测试。 我正在使用NUnit,并且到处都有很多Asserts,例如Assert.AreEqual(5,someVar)。

重复测试期望数字与实际数字的这种模式。

我正在从事的项目涉及对产生这些数字的模型的大量调整。 我当前的流程是,我将根据需求调整模型,这将使​​我的所有单元测试如期进行。 然后开始的是手动过程,该过程将更新我的断言中的所有期望值以匹配新的实际值,以使我的单元测试停止中断,直到需要对模型进行另一次调整为止。

我的问题是,是否存在插件或模式,以便在需要时可以使用实际值自动更新资产中的所有期望数字?

尝试设置一个通用的起始值,您可以更改该起始值而无需重新计算您的断言。

例如,假设您正在使用.AddOne()和.TimesTwo()方法进行ICalculator

您可以设置_startingNumber = 1
测试AddOne()声明(_startingNumber + 1,结果)
测试TimesTwo()断言(_startingNumber * 2,结果)

当您更改_startingNumber时,您的断言保持正确。
如果您声明逻辑而不是值,则可以尝试查找表

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

然后您的断言看起来像Assert(_lookup [“ SaveStatus”],结果)

因此,如果今天您期望“ SaveValueNew”,但是明天您期望“ SaveValueNew”,则可以在查找中更改它,但是所有期望保存状态的断言都是正确的。

我不确定您是否正在正确地解决这一问题。

您的单元测试表明您当前的模型正在按预期工作。

如果要更改模型,则应首先更改单元测试断言,以使其与您希望模型行为的方式匹配。

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

要先更改模型,然后自动更改测试中的断言值,以使其与更改后的模型所生成的值匹配,将使单元测试有效地变得无用。 他们无法告诉您实施模型更改的方式是否存在问题。

这听起来像是在嘲笑

您可以使用VS中的NuGet软件包安装它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM