簡體   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