我正在开发C# Windows Forms应用程序。
所有的业务逻辑都在PLSQL端( DataBase )。在C#端只有一个前端(列表框、复选框和从数据库获取数据的按钮)。我想为它写一些单元测试,但是不能在NUnit3中使用Windows Forms (VS看不到库,不能创建ComboBox的对象等等)。
我的问题是--有没有可能通过NUnit测试UI项?当业务逻辑在DB端时,是否有必要对其进行测试?
发布于 2020-01-18 02:55:58
需要明确的是,通过 UI、驱动点击、条目等来测试的工具并不是单元测试。它们只是一种自动化应用程序测试的方法,就像一个好的测试人员会做的那样,减去了人类测试人员的创造性洞察力。
设计良好的GUI,包括为Windows窗体编写的GUI,可以从单元测试中受益,但它通常不需要后端所需的那么多。例如,您不需要测试TextBox是否显示您输入的文本-- TextBox的代码不是您的代码。你可能想要测试TextBox的文本是否正确,TextBox的位置和大小是否设置正确--至少它在屏幕上是可见的。
这是你的判断,需要多少这种类型的测试。如果您想要编写这样的测试,NUnit是一个很好的工具--同级别的大多数测试框架一样。如果你是NUnit和/或编程单元测试的新手,你应该意识到大多数人认为这种图形用户界面测试比后端测试更高级。(我过去经常讲授Windows GUI测试课程,我的目标读者是那些已经知道NUnit an已经用它做了几年单元测试的人。)
我的建议是在GUI中找到您已经看到或预期到错误的地方。例如,您可能有一个复选框,用于控制其他控件是否处于活动状态。这种图形用户界面逻辑正是的单元测试有价值的地方。
一般建议..。
如果您这样做了,并且遇到了特定的问题,请给我们另一个问题。
发布于 2020-01-17 21:53:21
如果你是从visual studio创建你的项目,它提供了单元测试项目和主项目创建的选项,https://docs.microsoft.com/en-us/visualstudio/test/create-a-unit-test-project?view=vs-2019 .Also可以帮助你https://social.msdn.microsoft.com/Forums/windows/en-US/5239f415-3156-4871-96de-751616865ef2/how-to-do-unit-testing-for-windows-form-application?forum=vsunittest
https://stackoverflow.com/questions/59787946
复制相似问题