C#窗体unit testing

我现在正在为现有的软件编写unit testing,我的老板要求我写一个unit testing大纲/计划。

作为一个非常初级的C#开发人员,我试图find一种方法来为这个应用程序创build一个testing计划。

我已经build立了一个Excel文档,其中多张表格代表我的解决scheme中的每个项目。 我很困惑如何为所有可能的结果和input文件,特别是使用void和bool方法时。 或者当传递模型到一个方法中,那里有很多值被传入。

我怎样才能certificate通过,失败,以下2种方法的预期结果,基本大纲是我正在寻找的,而不是具体的文档:

public static void ManualEntryToggleStateChanged(bool isChecked) { /* check for manual entry * if manual entry information can be entered * focus user to reg no */ moTextboxRegName.ReadOnly = !isChecked; moTextboxRegHerd.ReadOnly = !isChecked; if (isChecked) { moTextboxRegHerd.Text = ""; moTextboxRegName.Text = ""; moDropDownListBreed.Focus(); } } public static void LoadAllLabs(nsHacBusSrv.SortMode Sort = nsHacBusSrv.SortMode.NotSorted) { try { moDropDownListLab.DataSource = moBusinessServices.GetAllLabs(Sort); moDropDownListLab.DisplayMember = "Name"; moDropDownListLab.ValueMember = "Idn"; nsTelWinUi.RadListDataItem oDefaultItem = new nsTelWinUi.RadListDataItem("", ""); moDropDownListLab.Items.Add(oDefaultItem); moDropDownListLab.SelectedValue = ""; } catch (System.Exception ex) { Debug.Fail(ex.Message); throw; } } 

为什么使用Excel? 如果我是你,我会添加一个testing项目的解决scheme。 去每个解决scheme,并为每个方法添加unit testing。 如果你有适合visual studio的插件,它会为你创build所有的testing用例存根。

至于如何testing,这是党的艺术,但主要是科学。 这一切都围绕着这些东西。 “任何给定的参数,如果以下条件进行了testing,详尽testing.. Min,Min-1,Min + 1,Max,Max-1,Max + 1 ..还有两个其他的特殊情况, .empty和null。这就给你提供了8个排列来详尽地testing所有的东西,但是你会发现大多数情况下你可以根据你正在testing的东西来减less这个testing的次数,例如一个bool值只有2个排列。但是一个stringparm至less有7个permuations。

testing的艺术部分围绕着发现模式并确定真正需要多less次的经历。 例如,两个string参数将花费7!-1排列来testing所有的可能性。 46个不同的testing,以获得所有的状态,但是,如果你经常仔细看代码,你可以大大减less这些数字。

好的testing的关键是不要遗漏任何事情,不要假设。 让testing告诉你代码是多么健壮,而不是开发人员。

您可以在moTextboxRegName和moDropDownListLab对象上声明指定属性的地方编写testing。 这假设你有办法通过你的api公开这些对象。 在进行unit testing时,为了能够testing你的代码,你必须为testing编写你的代码。