Как организовать код и тестирование с помощью asp.net mvc и модульное тестирование - PullRequest
7 голосов
/ 29 марта 2011

Итак, я прикусываю пулю и пытаюсь начать работу с asp.net MVC, модульным тестированием и TDD.

У меня есть смутное понимание вовлеченных концепций, то есть что-то большее, чем простоУровень "Hello World", но все еще довольно зеленый.Я готов к тому, что резина встретит дорогу, но я обнаружил, что смотрю на диалог «Новый проект» в VS последние полчаса ... Как именно вы организовываете свои юнит-тесты?

Я вижу, что со стандартным типом проекта VS Unit Test он создает отдельный проект для модульных тестов.Это то, как я должен действовать при использовании NUnit?Или тесты должны быть размещены в том же проекте, что и тестируемый код?

Похоже, что ни одно из учебных пособий типа "Начало работы с модульным тестированием ..." не решает эту проблему.

Ответы [ 4 ]

8 голосов
/ 29 марта 2011

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

Внутри тестовый проект может быть организован любым удобным для вас способом, если он согласован.Тестовый проект ASP.NET MVC может иметь папку ControllerTests с одним тестовым файлом .cs на контроллер, что в некоторой степени отражает структуру проекта MVC.Это позволяет легко находить тесты и связываться с кодом, который они тестируют.

2 голосов
/ 29 марта 2011

как именно вы организуете свои юнит-тесты?

Я организую свои юнит-тесты, чтобы отразить структуру моего проекта. Например, если в моем проекте ASP.NET MVC у меня есть

  • Контроллеры
  • Модель
  • Картостроители
  • валидаторы ...

У меня есть те же самые папки в моем проекте модульного тестирования. Затем для каждого файла в проекте MVC у меня есть соответствующий модульный тест. Вот пример образца структуры проекта, который я написал .

1 голос
/ 29 марта 2011

Мой формат обычно такой:

MyMvcApp.Web (The Actual Web Application)
  |- Controllers
  |- ViewModels
  |- Views
  |- Framework (For specific override points in the MVC Framework)
MyMvcApp (The class library that contains my domain specific logic)
  |- SomeFacet (Folder to contain entities, objects, etc)
   |- Repositories
MyMvcApp.UnitTests (Test project)
  |- SomeFacet (Contains tests for specified folder in class library)
MyMvcApp.IntegrationTests (Test project)
  |- SomeFacet (Contains tests for specified folder in class library)
0 голосов
/ 29 марта 2011

Прежде всего важно понять, что нам нужно тестировать и какие средства доступны для этой цели.Это в основном поведение объектов в приложении, на котором вы должны сосредоточиться.Вы можете выбирать из множества фреймворков, таких как NUnit и т. Д. Работайте над структурой тестового проекта, пока вы продолжаете.

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