Генератор случая модульного теста [закрывается]

protected Map<String, String> getParams() {
   Map<String, String> params = new HashMap<String, String>();

   JSONObject JObj = new JSONObject();

   try {
           JObj.put("Id","1");
           JObj.put("Name", "abc");

   } catch (Exception e) {
       e.printStackTrace();
   }

   params.put("params", JObj.toString());
   // Map.Entry<String,String>
   Log.d("Parameter", params.toString());
   return params;
}
14
задан Blair Conrad 10 December 2008 в 18:54
поделиться

3 ответа

Поколение модульного теста является неправильным способом выполнить поблочное тестирование. Надлежащий способ сделать поблочное тестирование должно создать тестовые сценарии, прежде чем Вы напишете функциональный код, затем разработаете Ваш код, пока тесты не проверяют, это, знают как TDD (Разработка через тестирование).

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

, Но так как код написан, это - теперь вода под мостом. И возможные ошибочные модульные тесты не лучше, чем никакие модульные тесты вообще. Я всегда предпочитал NUnit и существует совместимый тестовый генератор NUnit здесь (очень доступен).

22
ответ дан 1 December 2019 в 07:13
поделиться

Вы рассмотрели Pex? Это от Microsoft Research.

Pex автоматически производит маленький набор тестов с высоким покрытием кода для программы.NET. С этой целью Pex выполняет систематический анализ программы (использующий динамическое символьное выполнение, подобное ограниченной путем проверке модели) для определения тестовых исходных данных для Параметризованных Модульных тестов. Pex изучает поведение программы путем контроля трассировок выполнения. Pex использует ограничительный решатель для создания новых тестовых исходных данных, которые осуществляют другое поведение программы.

11
ответ дан 1 December 2019 в 07:13
поделиться

Несколько лет назад я изменил Haskell QuickCheck для обеспечения чисто функциональное испытание Управляемая Разработка с порождающими тестами. Мое решение состояло в том, чтобы сохранить семя PRNG для этого, генерировал провальный тестовый сценарий и запустил будущие тесты с тем же самым семенем.

я недавно получил задание.NET, и Google нашел, что MbUnit сделал , имеют поддержка порождающих тестов в 2004. Я также нашел более свежее Галлио , но я испытал своего рода затруднения с помощью него, я не помню точно что.

Так, TDD и порождающее тестирование не являются взаимоисключающими, Галлио является единственной недавней опцией.NET, которую я видел, и я не помню, почему я не использую его теперь.

5
ответ дан 1 December 2019 в 07:13
поделиться
Другие вопросы по тегам:

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