【发布时间】:2015-08-02 17:57:15
【问题描述】:
我们有一个尽可能遵循 MVP 模式的 LOB Winforms 应用程序。
在每个新版本中,我们都希望针对任何回归进行测试。
当前的方法是,每次测试人员出现错误/崩溃时,我们都会重现错误,然后使用 NUnit 插入测试。通常这个测试试图重现用户遵循的动作链,所以我们最终得到如下测试:MenuX_OperationY_buttonDoZ_Click_ERROR_DESCRIPTION()
测试通常准备上下文、加载数据并执行用户单击的操作以重现错误。然后修复错误并重新运行测试。依此类推...,直到我们拥有大量现有(回归?)测试。这种测试的例子是:
[Test]
public void MenuX_OperationY_buttonDoZ_Click_ERROR_DESCRIPTION()
{
// The presenter prepares Context & Load Data associated with Menu X
PrsMenuX.PrepareContext();
PrsMenuX.LoadData();
// Do Operation Y
PrsMenuX.OperationY();
// Click on Button Do Z
try
{
PrsMenuX.ButtonDoZ_Click();
}
catch (Exception ex)
{
Assert.Fail(ex.Message);
}
}
所以我的问题是,这是正确的方法吗? NUnit 是解决此问题的正确工具吗?如何改进?测试应该重现用户的操作,还是我们应该只对构成每个用户操作的低级函数进行单元测试?
【问题讨论】:
标签: c# winforms unit-testing regression-testing