.NET, тестирующая [закрытые] соглашения о присвоении имен

Вы генерируете следующий запрос:

SELECT 'TransactionID'
      ,'RecordID'
      ,'AccountID'
      -- more column names
UNION ALL
SELECT * FROM temp_transactionslines
order by TransactionID ASC

Предложение ORDER BY применяется ко всему набору UNION. Если вы хотите отсортировать только второй результат запроса, вам следует заключить его в скобки:

SELECT 'TransactionID'
      ,'RecordID'
      ,'AccountID'
      -- more column names
UNION ALL
(SELECT * FROM temp_transactionslines  order by TransactionID ASC)

Демонстрация: https://www.db-fiddle.com/f/fSXBH527fxg9hXy1JYGHyQ/0

19
задан Seb Nilsson 17 September 2008 в 15:48
поделиться

10 ответов

Я пойду с

* Company.Website - the project
* Company.Website.Tests

, короткая причина и ответ просты, тестирование и проект связано в коде, поэтому это должно совместно использовать пространство имен.

, Если Вы хотите разделить кода и тестировать в решении, у Вас есть та опция так или иначе. например, можно настроить решение с

- Папка Кода

  • Компания. Веб-сайт

- Тестовая Папка

  • Компания. Веб-сайт. Тесты
22
ответ дан 30 November 2019 в 02:39
поделиться

У меня на самом деле есть альтернативный параллельный корень.

Тесты. Компания. Веб-сайт

Это работает приятно на устранение неоднозначности вещей, когда у Вас есть новые sub пространства имен.

7
ответ дан 30 November 2019 в 02:39
поделиться

Я лично пошел бы с

Компания. Тесты. Веб-сайт

Тот путь у Вас есть общее тестовое пространство имен и проекты в нем, после той же структуры как фактический проект.

14
ответ дан 30 November 2019 в 02:39
поделиться

Я - большой поклонник структурирования тестового пространства имен как это:

Компания. Тесты. Компания Website.xxx

. Тесты. Веб-сайт. Средства управления

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

5
ответ дан 30 November 2019 в 02:39
поделиться

Я также предпочитаю "Тесты", снабжающие префиксом подлинное имя блока так, чтобы ее легкое для наблюдения всех моих блоков модульного теста, перечисленных в алфавитном порядке вместе, когда я массовый выбор их для получения по запросу в NUNit или безотносительно тестовой обвязки Вы используете.

Поэтому, если Веб-сайт был названием моего решения (и блоки), я предлагаю -

Tests.Website.dll согласиться с фактическим блоком кода Website.Dll

1
ответ дан 30 November 2019 в 02:39
поделиться

Мы следуем за встроенным подходом:

Company.Namespace.Test
Company.Namespace.Data.Test

Этот способ, которым тесты близко к коду, который тестируется, не имея необходимость переключаться назад и вперед между проектами или выслеживать ссылки для обеспечения, существует тест, покрывающий конкретный метод. Мы также не должны поддерживать две отдельных, но идентичных, иерархии.

Мы можем также протестировать отличные части кода, поскольку мы улучшаем и разрабатываем.

Кажется немного странным сначала, но за длительный срок это работало действительно хорошо на нас.

1
ответ дан 30 November 2019 в 02:39
поделиться

Я обычно называю тестовые проекты Тесты Проекта для краткости в Проводнике Решения, и я использую Компания. Пространство имен. Тесты для пространств имен.

0
ответ дан 30 November 2019 в 02:39
поделиться

Я предпочитаю Компанию. Веб-сайт. Спецификация и обычно имеет один тестовый проект на решение

0
ответ дан 30 November 2019 в 02:39
поделиться

Я предпочитаю идти с:

Компания. Веб-сайт. Тесты

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

0
ответ дан 30 November 2019 в 02:39
поделиться

С MVC, начинающим стать действительностью в мире веб-разработки .NET, я начал бы думать вдоль тех строк. Помните, что M, V и C являются отличными компонентами, таким образом:

  • Компания. Пространство имен. Веб-сайт
  • Компания. Пространство имен. Веб-сайт. Ядро
  • Компания. Namspance. Веб-сайт. Ядро. Тесты
  • Компания. Пространство имен. Веб-сайт. Модель
  • Компания. Пространство имен. Веб-сайт. Модель. Тесты

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

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

0
ответ дан 30 November 2019 в 02:39
поделиться
Другие вопросы по тегам:

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