ORDER BY с помощью Критериев API

Во-первых, это в порядке и нормально чувствовать себя разбитым, когда Вы сначала начинаете пытаться использовать TDD в своем стиле кодирования. Просто не становитесь нежелательными и выход, необходимо будет дать ему некоторое время. Это - главная парадигма, переключаются на нижний регистр, как мы думаем о решении проблемы в коде. Мне нравится думать о нем как то, когда мы переключились от процедурного до объектно-ориентированного программирования.

, Во-вторых, я чувствую, что разработка через тестирование является прежде всего действием дизайна, которое используется для изложения в деталях дизайна компонента путем создания теста, который сначала описывает API, который это собирается представить и как Вы собираетесь использовать, это - функциональность. Тест поможет сформировать и прессовать Систему Под Тестом, пока Вы не были в состоянии инкапсулировать достаточно функциональности для удовлетворения безотносительно задач, Вы, оказывается, продолжаете работать.

Взятие вышеупомянутый абзац в памяти, давайте посмотрим на Ваши вопросы:

  1. , Если я использую набор в своей системе под тестом, тогда я установлю ожидание удостовериться, что код назвали, чтобы вставить объект и затем утверждать количество набора. Я не обязательно тестирую Добавить метод в своем внутреннем списке. Я просто удостоверяюсь, что это назвали, когда метод, который добавляет объект, называют. Я делаю это путем добавления платформы насмешки в соединение с моей средой тестирования.
  2. строки Тестирования, поскольку вывод может быть утомительным. Вы не можете объяснить каждый результат. Можно только протестировать то, что Вы ожидаете на основе функциональности системы под тестом. Необходимо всегда ломать тесты к самому маленькому элементу, который это тестирует. Что означает, что у Вас будет много тестов, но тесты, которые являются маленькими и быстрыми и только тестируют то, что они должны, ничто иное.
  3. существует много сред тестирования с открытым исходным кодом для выбора из. Я не собираюсь спорить, который является лучшим. Просто найдите тот, который Вы любите и начинаете использовать его.
  4. Все, что можно сделать, установить тесты для составления то, что Вы хотите произойти. Если сценарий подходит, который представляет ошибку в Вашей функциональности, по крайней мере, у Вас есть тест вокруг функциональности, чтобы добавить что сценарий в тест и затем изменить Вашу функциональность до тестовых передач. Один способ найти, где мы, возможно, пропустили тест, состоит в том, чтобы использовать покрытие кода .

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

  • Moq: Открытый исходный код
  • RhinoMocks: Открытый исходный код
  • TypeMock: Коммерческий продукт
  • NSubstitute: Открытый исходный код

Один способ помочь в использовании TDD, помимо чтения о процессе, должен наблюдать, что люди делают это. Я рекомендую в наблюдении экранных бросков мировым судьей Boodhoo на DNRTV. Проверьте их:

Шаблонов разработки хорошо, они помогут Вам видеть, как термины, которые я представил, используются. Это также представит другой инструмент, названный Resharper и как это может упростить процесс TDD. Я не мог рекомендовать этот инструмент достаточно при выполнении TDD. Кажется, что Вы изучаете процесс, и Вы просто находите некоторые проблемы, которые были уже решены с использованием других инструментов.

я думаю, что сделал бы несправедливость сообществу, если бы я не обновил это путем добавления нового ряда Kent Beck на [1 117] Разработка через тестирование на Прагматически настроенном Программисте .

70
задан gnerkus 5 June 2016 в 20:56
поделиться

2 ответа

You need to create an alias for the mother.kind. You do this like so.

Criteria c = session.createCriteria(Cat.class);
c.createAlias("mother.kind", "motherKind");
c.addOrder(Order.asc("motherKind.value"));
return c.list();
107
ответ дан 24 November 2019 в 13:26
поделиться

It's hard to know for sure without seeing the mappings (see @Juha's comment), but I think you want something like the following:

Criteria c = session.createCriteria(Cat.class);
Criteria c2 = c.createCriteria("mother");
Criteria c3 = c2.createCriteria("kind");
c3.addOrder(Order.asc("value"));
return c.list();
8
ответ дан 24 November 2019 в 13:26
поделиться
Другие вопросы по тегам:

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