2008-09-24 2 views
0

Я использую Spring.net с NHiberante (HibernateTemplate) для реализации моих DAO.Spring.Net + Nhibernate Тесты интеграции проходят, когда они не должны

У меня также есть некоторые интеграционные тесты, которые простираются от «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() и проверяя DB для изменений, но я думаю, что вся идея такого рода тестов - это не делать этого.

Может ли кто-нибудь сказать мне, как исправить эту проблему?

спасибо!

@Ben: Если мне нужно выполнить SQL-скрипты, чтобы увидеть, работают ли они, что польза от использования подобных тестов Spring?

+0

Я не уверен, что вы имеете в виду пружинными испытаний. Я не пользователь весны (я предпочитаю замок Виндзор), и я вообще оставляю это _out_ моих тестов. Возможно, вы можете задать здесь новый вопрос, который больше ориентирован на эту тему. – 2008-09-25 22:46:02

ответ

1

Если у вас есть ошибка синтаксиса в вашем отображении, то NHibernate потерпит неудачу на config.BuildSessionFactory()

Но для mispelled объектов базы данных/не существование, единственный способ для NHibernate, чтобы знать, на самом деле запустить query ... Поэтому вы можете использовать некоторые интеграционные тесты для тестирования insert/select на одном объекте, чтобы убедиться, что он работает.

Не уверен, что это связано с Spring.NET.

2

При тестировании ваших DAO на основе NH вы должны очистить сеанс так, чтобы база данных обновлялась с новой информацией, но все же откатывалась по-прежнему. Как это сделать объясняется здесь - http://forum.springframework.net/showthread.php?t=5246 Я добавил это в справочные документы. Надеюсь это поможет.

Приветствия, Марк

Смежные вопросы