【发布时间】:2008-09-24 13:02:37
【问题描述】:
我正在使用 Spring.net 和 NHiberante (HibernateTemplate) 来实现我的 DAO。
我还有一些从“AbstractTransactionalDbProviderSpringContextTests”扩展而来的集成测试。
DI 工作正常,所有测试都通过了,但有时它们即使不应该通过。
例如,如果我的 hbm.xml 文件有这样的错误:
<class name="Confluence.Domain.User" table="THIS TABLE DOES NOT EXIST">
测试失败,但如果错误是这样的:
<many-to-many
class="Confluence.Domain.User"
column="THIS COLUMN DOES NOT EXIST"/>
测试通过静默隐藏错误。
我正在使用 SetComplete() 对其进行测试并检查数据库是否有更改,但我认为这种测试的整个想法不是这样做。
谁能告诉我如何解决这个问题?
非常感谢!
@Ben:如果我必须实际执行 SQL 脚本来查看它们是否有效,那么使用这种 Spring 测试有什么好处?
【问题讨论】:
-
我不确定你所说的 Spring 测试是什么意思。我不是 Spring 用户(我更喜欢 Castle Windsor),我通常将其 排除在我的测试之外。也许您可以在这里提出一个更针对该主题的新问题。
-
Spring 测试是指 Spring.Test.NUnit。 AbstractTransactionalDbProviderSpringContextTests 是一个方便的抽象类,因此每个用 [test] 注释的方法都在始终回滚的事务中运行,因此数据库不会被测试污染,我不必清理
标签: nhibernate integration-testing spring.net