|
|
1
1
Q1:
我看到帖子上有nunit标签,所以我假设是.NET上下文。考虑到这一点,我个人已经在一个项目中成功地使用了几个月的sqlite作为内存数据库(以及nhibernate和常见的DDD模式)。 Q2:
我认为编写完全独立于数据库的代码是不可能的,但是nhibernate占了我的95%(但是这个数字很大程度上取决于您的具体上下文)。 此外,有了良好的数据访问模式,例如“存储库”和“工作单元”,其余的代码库就可以100%地与数据库无关。其他数据源也一样,例如csv和xml文件。 |
|
|
2
4
是的。编写一个接口,其中包含对数据库的所有调用。 然后创建两个实现接口的类。 其中一个可以真正访问您的数据库。 另一个,只是假装,这是一个模拟实现。 |
|
3
2
像犀牛模型一样,使用伪造来模拟数据访问。这样,当您的测试运行时,它们将与假的进行交互,而不是一直向下进入数据库。 |
|
|
4
1
您可以使用模拟对象测试业务层(以及一些表示层)。 使用mocks/fake,这样就不会从dal调用数据库,而是调用一个假的类,并返回一个预定义的值。 为了测试DAL,您需要实际的数据库 . 您可以使用单元测试框架在数据库上运行简单的CRUD。创建一个简单的测试数据库和一个还原点,并使用单元测试框架的设置和拆卸来确保数据库处于预期状态。 |