Найдено результатов: 10

Как выполнить модульный тест на постоянство?

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

Я знаю, что технически это был бы интеграционный тест (а не юнит-тест), но я хочу выяснить лучшие стратегии для следующего:

  1. Тестовые запросы.
  2. Тестовые вставки. Как я узнаю, что вставка, которая пошла не так, если она не работает? Я могу проверить его, вставив и затем запросив, но как я могу знать, что запрос не был ошибочным?
  3. Тестирование обновлений и удалений -- то же самое, что тестирование вставок

Каковы наилучшие методы для этого?


Что касается тестирования SQL: я знаю, что это можно сделать, но если я использую o/R Mapper, как NHibernate, он прикрепляет некоторые бородавки именования в псевдонимах, используемых для выходных запросов, и поскольку это несколько непредсказуемо, я не уверен, что смогу это проверить.

Должен ли я просто бросить все и просто довериться NHibernate? Я не уверен, что это разумно.

sql-server   unit-testing   tdd    

369   10   16:03, 1st July, 2020


Каковы основные различия между TDD и BDD?

Разработка на основе тестов была в моде в сообществе .NET в течение последних нескольких лет. Недавно я слышал ворчание в сообществе ALT.NET по поводу BDD. Что это? Чем он отличается от TDD?

unit-testing   tdd   bdd    

477   13   16:03, 1st July, 2020


Каковы основные различия между TDD и BDD?

Разработка на основе тестов была в моде в сообществе .NET в течение последних нескольких лет. Недавно я слышал ворчание в сообществе ALT.NET по поводу BDD. Что это? Чем он отличается от TDD?

unit-testing   tdd   bdd    

615   13   16:03, 1st July, 2020


Тестовые утверждение против утверждения

В моем самом C++ проекте я активно использовал оператор ASSERTION следующим образом:

int doWonderfulThings(const int* fantasticData)
{
    ASSERT(fantasticData);
    if(!fantasticData)
        return -1;
    // ,,,
    return WOW_VALUE;
}

Но сообщество TDD, похоже, любит делать что-то подобное:

int doMoreWonderfulThings(const int* fantasticData)
{
    if(!fantasticData)
        return ERROR_VALUE;
    // ...
    return AHA_VALUE;
}

TEST(TDD_Enjoy)
{
    ASSERT_EQ(ERROR_VALUE, doMoreWonderfulThings(0L));
    ASSERT_EQ(AHA_VALUE, doMoreWonderfulThings("Foo"));
}

Просто с моим опытом первые подходы позволили мне удалить так много тонких ошибок. Но подходы TDD-это очень умная идея для обработки устаревших кодов.

"Google"-они сравнивают "FIRST METHOD" с "ходить по берегу со спасательным жилетом, плавать по океану без всякого безопасного охранника".

Какой из них лучше? Какой из них делает программное обеспечение надежным?

c++   tdd   defensive-programming    

460   5   03:25, 1st August, 2020


Лучшая практика для интеграции TDD с разработкой веб-приложений?

Модульное тестирование и веб-приложения ASP.NET-это неоднозначный момент в моей группе. Чаще всего хорошие методы тестирования проваливаются через трещины, и веб-приложения в конечном итоге живут в течение нескольких лет без каких-либо тестов.

Причиной этого болевая точка, как правило, вращается вокруг проблем написания автоматизации UI развитии.

Как вы или ваша организация интегрируете лучшие практики TDD с разработкой веб-приложений?

unit-testing   tdd    

402   7   14:25, 10th August, 2020


Как вы тестируете веб-приложения, размещенные удаленно?

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

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


Для всех, кто ответил с "just test before you deploy" и "разве у вас нет промежуточного сервера?- Я понимаю, к чему ты клонишь. У меня есть промежуточный сервер и настроенный процесс CI. Мои модульные тесты выполняются, и я убеждаюсь, что все они проходят перед обновлением до производства.

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

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

unit-testing   web-applications   tdd    

426   5   11:01, 5th August, 2020


Что такое качественный пример реального мира TDD в действии?

Что такое качественный пример реального мира TDD в действии? Какие проекты с открытым исходным кодом small-to-medium в .net существуют, которые демонстрируют лучшую практику в TDD и могут работать в качестве ссылки для выполнения TDD правильно?


Я больше ищу пример проекта(ов) живого дыхания, который служит хорошим примером TDD. Что-то, что будет дополнять книги и ссылки, которые объясняют и демонстрируют процесс в изоляции.

Что-то, что было бы полезно для стремительного разработчика, который хочет повысить уровень от новичка/промежуточного специалиста TDD...

open-source   tdd    

489   8   04:40, 21st August, 2020


Начало TDD-Проблемы? Решения? Рекомендации?

Хорошо, я знаю, что уже были вопросы о начале работы с TDD .. Тем не менее, я думаю, что я вроде как знаю, что общее согласие состоит в том , чтобы просто сделать это , однако, у меня, кажется, есть следующие проблемы, чтобы получить мою голову в игре:

  • При работе с коллекциями, do все равно будет тестировать на очевидный add/remove/inserts успешный, даже если он основан на дженериках и т. д., где мы вроде "know" его будем работать?
  • Некоторые тесты кажутся бесконечными, чтобы их реализовать.. Например, при работе со строковым выводом, есть ли способ "better" для такого рода вещей? (например, протестируйте объектную модель перед синтаксическим анализом, разбейте синтаксический анализ на небольшие операции и протестируйте там) на мой взгляд, вы всегда должны тестировать "end result", но это может сильно варьироваться и быть утомительным для настройки.
  • У меня нет тестовой платформы для использования (работа не будет платить за нее), поэтому я могу "practice" больше. Есть ли хорошие из них, которые являются бесплатными для коммерческого использования? (на данный момент я использую старые добрые Debug.Assert :)
  • Наверное, самый большой.. Иногда я не знаю, чего ожидать от NOT.. Я имею в виду, что вы получаете свой зеленый свет, но я всегда беспокоюсь, что могу пропустить тест.. Вы копаете глубже, чтобы попытаться взломать код, или оставляете его в покое и ждете, что все это упадет позже (что будет стоить больше)..

Поэтому в основном то, что я ищу здесь, - это не " просто сделай это ", а больше " я сделал это, имел проблемы с этим, решил их этим ".. Личный опыт :)

unit-testing   language-agnostic   tdd    

473   11   14:53, 4th August, 2020


Как облегчить TDD с MSTest / VS2008

Я снова и снова читал, что TDD/test first сложнее с MSTest, чем с другими фреймворками тестирования, такими как nUnit, MBUnit и т. д... Каковы некоторые предлагаемые ручные обходные пути и / или сторонние биты, которые вы предлагаете, когда MSTest является единственным вариантом из-за политики инфраструктуры? Мне в основном интересно узнать о VS 2008 Team Suite, но я полагаю, что советы для VS 2008 Pro on up тоже подойдут, поскольку некоторые функции MSTest теперь включены и в эти версии.

visual-studio-2008   tdd   mstest    

508   10   04:18, 4th August, 2020


Как я должен протестировать метод, который заполняет список из DataReader?

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

Код, над которым я работаю, должен быть заполнен, скажем, a List<Foo> из A DataReader, который возвращает все поля, необходимые для функционирования Foo. Однако если я хочу проверить, что код фактически возвращает один элемент списка на одну строку базы данных, я пишу тестовый код, который выглядит примерно так:

Expect.Call(reader.Read()).Return(true);
Expect.Call(reader["foo_id"]).Return((long) 1);
// ....
Expect.Call(reader.Read()).Return(true);
Expect.Call(reader["foo_id"]).Return((long) 2);
// ....
Expect.Call(reader.Read()).Return(false);

Что тоже довольно утомительно и довольно легко нарушается.

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

Кстати, в настоящее время я использую Rhino.Mocks для этого, но я могу изменить его, если результат будет достаточно убедительным. Просто пока альтернативой не является TypeMock, потому что их EULA было немного слишком страшно на мой вкус, когда я последний раз проверял.

Edit: я также в настоящее время ограничен C# 2.

c#   unit-testing   tdd   mocking    

473   6   03:56, 25th August, 2020