03 2012 档案
摘要:我们没有使用TDD,所以单元测试最麻烦的就是准备测试的基础数据。我们现在是使用内存仓储来做单元测试,要为每个仓储都构造基础数据,非常麻烦。
前几天看xunit的源码,看到AutoRollbackAttribute这个特性,异常的兴奋 ^_^。怎么就忘了用事务的自动回滚呢?
AutorollbackAttribute使用了.Net Framework自带的TransactionScope。TransactionScope在.NET 2.0中就已经有了,可用于分布式事务。用这种方法来做数据的自动回滚也有一些不足:
1、数据库要支持事务。
2、内部数据库操作的逻辑里没有事务的实现。
很庆幸的是我们的项目正好都满足上面的2点,唯一不足的就是mongodb不支持事务。所以就需要混合仓储实现了,事务数据库使用真实的仓储,mongodb使用内存仓储。
阅读全文
公告
积分与排名
- 积分 - 134953
- 排名 - 10642
随笔分类 (111)
最新评论
- 1. Re:深入解析Hashtable、Dictionary、SortedDictionary、SortedList
- 首先感谢楼主.其次,我用楼主的代码测试了一下,仅仅将 dictionary.Select(o => o.Key % 1000 == 0).ToList().ForEach(o => { });修改成了...
- --热敷哥
- 2. Re:深入解析Hashtable、Dictionary、SortedDictionary、SortedList
- dictionary.Select(o => o.Key % 1000 == 0).ToList().ForEach(o => { });都7-8年了,还挂这呢,这个语句什么意思?你确定是挑选测试吗?...
- --zzy
- 3. Re:在生产环境下,MONO与.NET Framework的性能差别。
- 现在跑mono怎么样了
- --FourOne
- 4. Re:C#中国身份证验证
- 推荐使用阿凡达数据的身份证实名认证接口:
- --happyluyy
- 5. Re:为CKEditor开发插入代码的插件 已提供下载
- @ 木子博客引用@Kevin Cheng我的现在的是WP的CKEditor里,我直接把这个CKEditor发给你吧?也发给我一份吧 739423721@qq.com !!!!...
- --ChineseMoonGod