我自己管理一个相当大的应用程序(5 万多行代码),它管理着一些相当关键的业务操作。为了简单地描述该程序,我会说它是一个精美的 UI,能够显示和更改数据库中的数据,它管理着大约 1,000 个出租单元、大约 3000 个租户和所有财务。
当我进行更改时,由于它的代码库太大,有时我会在其他地方破坏某些东西。我通常通过检查我在功能级别更改的内容(即我运行程序并通过 UI 工作)来测试它,但我无法测试每种情况。这就是我想开始进行单元测试的原因。
但是,这不是一个真正的三层程序,包括数据库层、业务层和 UI 层。很多业务逻辑是在 UI 类中执行的,很多事情是在事件上完成的。使事情复杂化的是,一切都是数据库驱动的,而且(到目前为止)我还没有看到关于如何对数据库交互进行单元测试的好建议。
开始对此应用程序进行单元测试的好方法是什么?记住。我以前从未做过单元测试或 TDD。我是否应该重写它以从 UI 类中删除业务逻辑(大量工作)?或者有更好的方法吗?
最佳答案
我会首先使用一些工具来通过 UI 测试应用程序。有许多工具可用于创建模拟用户点击应用程序的测试脚本。
我还建议您在添加新功能时开始添加单元测试。应用程序开发完成后创建完整的覆盖范围非常耗时,但如果您以增量方式进行,则可以分配工作量。
我们通过单独的数据库来测试数据库交互,该数据库仅用于单元测试。这样我们就有了一个静态的、可控的数据集,这样请求和响应就可以得到保证。然后我们创建 C# 代码来模拟各种场景。为此,我们使用 nUnit。
关于c# - 使用在 UI 中执行的业务逻辑对数据库应用程序进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2609204/