![]() |
1
16
查看数据库单元。它是一个Java库,但是必须有一个C等价物。它允许您用一组数据准备数据库,以便知道数据库中有什么,然后您可以与数据库单元交互,以查看数据库中有什么。它可以运行在许多数据库系统上,因此您可以使用您的实际数据库设置,或者使用其他东西,如Java中的HSQL(具有内存中的Java数据库实现)。 如果您希望测试代码是否正确地使用了数据库(这很可能是您应该做的),那么这是隔离每个测试并确保数据库已准备好预期数据的方法。 |
![]() |
2
15
AS Mike Stone said ,dbunit非常适合在运行测试之前使数据库进入已知状态。测试完成后,dbunit可以将数据库恢复到运行测试之前的状态。 |
![]() |
3
4
通过模拟数据库连接来进行单元测试。通过这种方式,您可以构建特定查询在方法调用流中成功或失败的场景。我通常构建我的模拟期望,以便忽略实际的查询文本,因为我真的想测试方法的容错性以及它如何处理自身——SQL的细节与这一点无关。 很明显,这意味着你的测试不会真正验证方法 作品 ,因为SQL可能是错误的。这就是集成测试开始的地方。为此,我希望其他人能有一个更彻底的答案,因为我刚刚开始和那些人打交道。 |
![]() |
4
3
我在这里写了一篇关于 unit testing the data layer 它涵盖了这个确切的问题。为(可耻的)插头道歉,但文章太长了,无法在这里发表。 我希望这对你有帮助-在过去的6个月里,我在3个积极的项目上工作得很好。 当做, 罗布G |
![]() |
5
2
我在单元测试持久性时遇到的问题,尤其是在没有ORM的情况下,这样会模拟数据库(连接),是您不知道您的查询是否成功。可能是您的查询是专门为特定的数据库版本设计的,并且只在该版本下成功。如果你嘲笑你的数据库,你永远不会发现这一点。所以在我看来,单元测试持久性的使用是有限的。您应该始终添加针对目标数据库运行的测试。 |
![]() |
6
2
为了
|
![]() |
7
2
对于基于JDBC的项目,可以使用我的Acolyte框架: http://acolyte.eu.org . 它允许模拟您想要测试的数据访问,受益于JDBC抽象,而不必管理特定的测试数据库。 |
![]() |
8
1
我还将模拟数据库,并检查查询是否符合您的预期。存在测试检查错误SQL的风险,但这将在集成测试中检测到。 |
![]() |
9
1
从技术上讲,持久性的单元测试不是单元测试,而是集成测试。 使用c使用mbUnit,只需使用sqlRestoreInfo和rollback属性
同样可以在nunit中完成,excpet属性名差别很小。 至于检查您的查询是否成功,通常需要使用第二个查询来跟踪它,以查看数据库是否如您所期望的那样发生了更改。 |
![]() |
10
1
我通常创建一个存储库,并使用它来保存我的实体,然后检索一个新的实体。然后我断言检索的值等于保存的值。 |
|
wavesinaroom · 断言结构向量长度 7 月前 |
![]() |
Tim Kirkwood · 比较空数据帧 8 月前 |
![]() |
Kamran Khan · 使用单元测试ASP。NET核心 1 年前 |
![]() |
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 1 年前 |
![]() |
Ricky Mo · 角度测试如何模拟导入的const 1 年前 |
![]() |
Natty · Visual Studio中缺少“代码覆盖率结果” 1 年前 |