Тестирование NHibernate, дразня ISession

Ваша скрипка показывает модальный метод jQuery .show, который делает скрытый элемент видимым. Поэтому никакие события не сработают.

Чтобы вызвать событие shown.bs.modal и любое событие, связанное с модальным в этом отношении, вы захотите использовать модальные методы, в частности .modal('show'), чтобы отобразить модальное сообщение соответствующим образом.

$('#opendlg').click(function() {
    $('#modal').modal('show');
});
6
задан Pragmatic Agilist 16 January 2009 в 22:19
поделиться

2 ответа

То, как я сделал этот тест, не должно передать выражение репозиторию, вместо этого выставить IQueryable предоставление репозитория интерфейса, такого как:

public interface IRepository<T>
{
    IQueryable<T> All();
    // whatever else you want
}

Легко реализованный как так:

public IQueryable<T> All()
{
    return session.Linq<T>();
}

Это означает что вместо того, чтобы назвать Ваш метод на репозитории как:

var result = repository.FindBy(x => x.Id == 1);

Можно сделать:

var result = repository.All().Where(x => x.Id == 1);

Или синтаксис LINQ:

var result = from instance in repository.All()
             where instance.Id == 1
             select instance;

Это затем означает, что можно получить тот же тест путем насмешки репозитория непосредственно, который должен быть легче. Вы просто заставляете насмешку возвращать список, на котором Вы создали и назвали AsQueryable ().

Как Вы указали, точка этого должна позволить Вам протестировать логику своих запросов, не включая базу данных, которая замедлила бы их существенно.

7
ответ дан 17 December 2019 в 00:15
поделиться

С моей точки зрения, это считали бы Интеграционным тестированием. NHibernate имеет свои собственные тесты, которые он проходит, и это кажется мне как, Вы пробуете дубликат некоторые из тех тестов в Вашем собственном наборе тестов. Я или добавил бы код NHibernate и тесты к Вашему проекту и добавил бы это там наряду с их тестами, это - то, если они не имеют одного очень подобного, и используют их методы тестирования или перемещают это в сценарий Интеграционного тестирования и поражают базу данных.

Если это - просто факт, Вы не хотите должными быть устанавливать базу данных для тестирования против, Вы находитесь в удаче, так как Вы используете NHibernate. С некоторым поиском с помощью Google можно найти довольно много примеров того, как использовать SQLite для "своего рода", делают интеграционное тестирование с базой данных, но сохраняют его в памяти.

0
ответ дан 17 December 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: