С какого Модульного теста Вы запустили бы?

Предполагая, что строка с ошибкой действительно:

binary(i) = num2str(r(i));

Затем, при вызове функции с аргументом 25.10, до достижения этой строки имеем:

i=1
r=1.10000
num2str(r(i)) = '1.1'

Вот почему атрибуция

 binary(i) = num2str(r(i));

Не работает. В Matlab двоичный код (1) представляет собой массив символов 1x1. Вы пытаетесь вписать в него массив символов 1x3 ('1.1').

5
задан Sekhat 15 January 2009 в 13:48
поделиться

5 ответов

Позволяет предполагают, что я кодирую названный класс Oven испечь мое восхитительное Pie объекты. Это - то, как я ступаю через порядок модульного теста:

  1. Что я должен сделать для инстанцирования объекта? В этом случае это, скорее всего, было бы Oven oven = new Oven(); Никакой тест для этого, я предполагаю.
  2. Как я готовлю объект к использованию? oven.turnOn(int degrees) хорошие звуки, я сделаю это. Как я проверяю его? Лучше сделайте oven.getTemperature(). Существует очевидный тест.
  3. Хорошо, духовка является теперь достаточно горячей, и я хочу испечь мой Pie. Для этого мне нужно oven.bake(Pie p) таким образом, я сделаю это. Но теперь что? Я хочу проверить, готов ли круг, а скорее, чем наличие oven.isPieReady() Я думаю это oven.pastryStatus() который возвращает вещи как "ничто в духовке", "сырые данные", "почти сделанный", "приготовленные" и "обугленные" хорошие звуки и в целом должны быть более растяжимыми, чем oven.isPieReady() таким образом, я сделаю это.

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

7
ответ дан 14 December 2019 в 01:19
поделиться

Когда сталкивающийся со списком тестов для реализации у Вас будут категории

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

В таком сценарии, Выбор один от блока Category2, потому что это предоставит макс. знание/изучение на единицу инвестированного времени. Плюс он получит Вас прокрутка и повысит уверенность, чтобы расти к более трудным тестам Category3.

Я думаю, что получил это от TDD Примером - Kent Beck. Взгляните в случае, если у Вас есть время..Рекомендуется.

1
ответ дан 14 December 2019 в 01:19
поделиться

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

0
ответ дан 14 December 2019 в 01:19
поделиться

Я преподавал внутренний класс TDD некоторое время теперь, и много участников начинается путем тестирования всех ошибочных случаев. Релевантный, как они могут быть, который не является лучшим способом запустить imo.

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

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

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

1
ответ дан 14 December 2019 в 01:19
поделиться

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

1) Определите Граничные Объекты (Победа/Веб-формы, CustomControls и т.д.).

2) Определите Объекты управления (Бизнес-расположенные на слое объекты)

3) Запишите Модульные тесты только на открытые методы объектов управления, вызванные граничными объектами. Таким образом, Вы будете уверены, что покрываете основные функциональные аспекты своего приложения.

Можно использовать эти правила расположить по приоритетам поблочное тестирование - затем, если необходимо микропротестировать другой материал, можно также сделать это в зависимости от потребностей.

0
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

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