如何测试涉及数据库中数据更新的业务逻辑层

时间:2019-05-15 15:35:54

标签: c# unit-testing nunit

我知道我的问题似乎是我在寻找一些捷径,但实际上我进行了很多搜索,找不到用于学习涉及数据库数据更新的业务层专用单元测试的资源。

我确实获得了学习在nunit中编写单元测试用例的资源,但是它们都在测试静态数据。我不想初学者学习单元测试写作,我想在nunit中编写单元测试,我的主要问题是我们如何测试涉及数据库中数据插入/更新/删除的方法?我们在测试时实际上会插入数据吗?嘲笑在其中起作用吗?

请帮助我获取涉及此案例的任何资源。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您的业务层是用C#编写的(如标签所示),则模拟数据库是最佳实践。您使用了一个模拟框架,该框架允许您控制数据层并编写断言,表明您的业务层在受控(模拟)响应下可以执行正确的操作。如果您使用这种方法,那么您的测试将被隔离并且可以非常快速地执行而无需与数据库建立任何连接(您应该能够在一秒钟内执行数千个单元测试。)

如果您的数据库本身包含很多业务逻辑,那么您可以单独对其进行单元测试,但是我不会为此使用nunit。

如果您决定在nunit C#业务逻辑测试中包括数据库,那么您将不得不处理与数据库的连接以及测试之间的共享状态。您将处于更加复杂的设置中,并处理更复杂的错误。

以下是一个很好的资源:https://www.amazon.com/Pragmatic-Unit-Testing-Nunit-Programmers/dp/0974514020