Модульные тесты в [закрытом] Python

Если я попытаюсь выполнить HTTP-POST, выполнив http: // localhost: puerto / Api / Registros / registro (без дополнительных параметров), сервер вернет мне ошибку 404 : "Ресурс не найден". Я устанавливаю точку останова внутри метода Controller, в предложении switch (), и когда я пытаюсь получить доступ с помощью HTTP-POST, никогда не выполняю этот метод.

blockquote>

Я полагаю, у вас есть два правила перезаписи URL в вашем приложении, одно - правило AccesoRegistro, другое - правило по умолчанию.

Правило по умолчанию выглядит следующим образом:

        routes.MapRoute(
         name: "Default",
         url: "{controller}/{action}/{id}",
         defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
     );

Таким образом, http: // localhost: puerto / Api / Registros / registro будет сначала соответствовать правилу по умолчанию "{controller} / {action} / {id} "не правило AccesoRegistro, оно вернет ошибку 404.

Я полагаю, вы могли бы поставить правило AccesoRegistro перед правилом по умолчанию, тогда оно будет работать хорошо.

Как показано ниже:

    routes.MapRoute(
     name: "Default",
     url: "{controller}/{action}/{id}",
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
 );

    routes.MapRoute(
"AccesoRegistro",
"Api/Registros/Registro/{email}/{fecha}",
new
{
    controller = "Registros",
    action = "Registro",
    email = UrlParameter.Optional,
    fecha = UrlParameter.Optional
}

Результат:

enter image description here

19
задан Sam McAfee 31 August 2008 в 05:07
поделиться

9 ответов

Python имеет несколько сред тестирования, включая unittest, doctest, и nose. Самое подобное xUnit unittest, который документируется на Python.org.

25
ответ дан 30 November 2019 в 03:12
поделиться

Я рекомендую нос .

Это - большая часть Pythonic платформ модульного теста. Исполнитель тестов выполняет и doctests и unittests, таким образом, Вы свободны использовать безотносительно стиля теста Вам нравится.

9
ответ дан 30 November 2019 в 03:12
поделиться

@Greg: PyUnit включен в стандартную библиотеку как unittest

2
ответ дан 30 November 2019 в 03:12
поделиться

Существует testoob, который является довольно полным комплектом теста. Также xUnit-т.е., и имеет хорошую опцию

создания отчетов
3
ответ дан 30 November 2019 в 03:12
поделиться

Рассмотрите py.test. Не точно аналогичный NUnit, но очень хороший, с хорошими функциями включая тестовое автоматическое обнаружение и "Часы тесты и код - когда что-то изменяется, повторно выполняют тесты, которые перестали работать в прошлый раз. Как только все тесты передают, переключаются на запущение всех тестов каждый раз, когда somethings изменяются". опция.

2
ответ дан 30 November 2019 в 03:12
поделиться

Существует также PyUnit, который мог бы быть тем, что Вы ищете.

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

Никогда не использовал xUnit, таким образом, я не могу сказать Вам, если платформы являются хорошим/плохим comparativly, но здесь сценарий, который я записал, какое использование unittest платформа (для проверки API работает, как это должно) и doctest (для проверки примеров я дал работу)

Моя единственная проблема проверяет, что что-то повышает исключение, является немного замысловатым (необходимо передать его функция/лямбда, которая повышает исключение, а не просто саму команду, как остальная часть платформы).. Кроме этого, это делает то, что это должно, надежно, и это было включено в распределение Python по умолчанию в течение достаточно долгого времени.

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

Я рекомендую Nose.

После разумно простой установки вам просто нужно запустить «тесты» в папке вашего проекта, и Nose найдет все ваши тесты и запустит их. Мне также нравится набор плагинов (покрытие, GAE и т. Д.) И возможность вызывать Nose прямо из моих скриптов Python.

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

нос кажется лучшим сочетанием гибкости и удобства. Он запускает unittests, doctests, покрытия (с расширением) и тесты, подобные py.test, из одного фреймворка и делает это превосходно. У него достаточно популярности, так что в него была интегрирована некоторая IDE для Komodo Edit, и я не удивлюсь, увидев его и в другом месте.

Мне он нравится по одной веской причине: я почти всегда документирую, прежде чем писать более обширные тесты в другом фреймворке. Это потому, что для базовых тестов доктесты убивают двух зайцев одним выстрелом. Вы получаете исполняемые тесты (хотя иногда их сложно писать хорошо), а также документацию по API и интерактивную документацию одновременно. Нос будет запускать их с помощью прилагаемого расширения doctest, когда вы используете параметр командной строки (--with-doctest).

Я говорю это из py.test, как мой прежний фаворит. Несмотря на то, что это здорово, тесты носа для меня достаточно похожи, я не скучаю по нему, и мне нравится, так сказать, интеграция различных методологий тестирования под одной крышей. YMMV, но я рекомендую хорошенько взглянуть на нос, прежде чем выбирать другой. Если вы не знакомы с тестами py.test, вам также следует взглянуть на них. Я считаю их потрясающими, потому что они обычно написаны таким образом, что их можно легко отладить без среды тестирования, что делает одну менее сложной систему, вовлеченную в сеанс отладки. Я считаю это само по себе бесценным, хотя, на мой взгляд, их проще написать, чем модульные тесты.

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

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