![]() |
1
1
对数据持久性进行单元测试几乎是不可能的,所以我通常在集成级别进行。
关于环境管理,您应该已经有了一些机制来配置数据库连接(这样您就可以拥有测试和生产环境)-有很多方法可以做到这一点,包括Microsoft产品和内部解决方案-因此您应该使用相同的方法来配置生成计算机。 |
![]() |
2
1
在过去的六年左右,我主要使用NHibernate来保持持久性。
每个 测试(在集成案例中,随后杀死DB)。这需要更长的时间来运行,但是清除代码的风险更大(顺便说一句,xUnit测试模式书中对此进行了讨论)。 |
![]() |
3
0
我的方法是创建一组集成测试,用于测试数据访问层(存储库和映射)。我认为如果您使用ORM工具,它使用“约定重于配置”的方法,比如EF中的POCO映射,这一点非常重要。我有一个DB初始化脚本,它创建新的数据库(和当前的开发DB相同)并创建初始的测试数据集。此脚本仅在测试运行开始时运行一次。在测试运行结束时删除数据库。每个集成测试都使用在测试结束时回滚的事务,因此所有测试的测试数据都是相同的。为了验证DB中的数据,我使用了带有标准SqlCommand方法的helper类。要使用SqlCommand,您必须为测试使用readuncommitted事务隔离级别,因为您通常不共享SqlCommand和EF context之间的连接。 |
![]() |
Tony Raimo · 域实体是否应该调用存储库? 7 年前 |
![]() |
Seb · DDD只读存储库返回“值对象” 7 年前 |
![]() |
tlt · 使用嵌套对象和大集合进行聚合根优化 7 年前 |
![]() |
PatrickSJ · DDD,状态对象/值对象 7 年前 |
![]() |
msmani · DDD更改聚合根id 7 年前 |
![]() |
DuskMcDusk · 逻辑和性能中的聚合根冲突 7 年前 |