Как бы я тестировал этот запрос nhibernate? - PullRequest
1 голос
/ 16 декабря 2009
public Category GetByName(string name)
        {
            Category category = Session.CreateCriteria(typeof (Category))
                .Add(Expression.Eq("Name", name))
                .UniqueResult<Category>();


            return category;
        }

Или это так ясно, что не нуждается в тестировании?

Ответы [ 4 ]

6 голосов
/ 16 декабря 2009

Я думаю, что нужно написать несколько тестов:

  1. Проверьте, что вы получаете категорию, соответствующую имени, указанному в пуле именованных категорий.
  2. Проверьте, что вы получаете одну категорию из пула категорий с тем же именем.
  3. Проверьте, что вы получаете нулевое значение при использовании имени, которое не существует в пуле категорий.

Что касается философской ясности, не требующей испытаний; Я считаю, что это вопрос мнения. Если вы написали эту строку 3 миллиона раз и уверены, что она работает, как ожидалось, возможно, вы не найдете ее стоящей. Однако, если это новый ландшафт, всегда стоит потратить лишний момент, чтобы убедиться, что он работает как положено.

3 голосов
/ 16 декабря 2009

Тот факт, что код ясен, не означает, что он НЕ должен подвергаться модульному тестированию.

Тесты просты, дайте ему имя, вернет ли вам правильную категорию? Разве это не NULL?

Вы также не пишете тест для этого метода сегодня. Что если в будущем вы проведете рефакторинг, как вы узнаете, что не вносите критических изменений?

0 голосов
/ 16 декабря 2009

Лично я бы не стал это тестировать. Вместо этого я бы написал несколько интеграционных тестов.

0 голосов
/ 16 декабря 2009

Это довольно ясно, как есть, хотя что произойдет, если у вас более одной категории с одинаковым именем? Если это невозможно из-за вашей архитектуры (уникальность применяется в другом месте), стоит отметить этот факт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...