Мой код сильно взаимодействует со своей средой. Должен ли я заняться модульным тестом? - PullRequest
2 голосов
/ 05 декабря 2008

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

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

Например, если я перенесу этот код в другую версию ОС, я уверен, что будет много ошибок, но я не понимаю, как модульные тесты могут помочь мне их найти.

Нашли ли вы ту же проблему? Должен ли я даже попытаться написать модульные тесты для этого?

Ответы [ 4 ]

7 голосов
/ 05 декабря 2008

Есть ли у вас бизнес-логика? Расчеты? или вы просто захватываете и отображаете данные?

Юнит-тестирование полезно, ну, для тестирования юнитов. Другими словами, есть ли какие-то части вашего приложения, которые могут работать изолированно? Если нет, то в действительности нет ничего для юнит-теста.

Функциональные тесты - другая история ...

3 голосов
/ 05 декабря 2008

Мне трудно поверить, что любой может написать код без использования процедур или методов или блоков кода, которые можно превратить в процедуры или методы. Если вы можете сделать это, то вы можете написать тесты для этих методов. Процесс написания этих тестов почти заставит вас писать более чистый, более оторванный код, чем в противном случае. Если ваши методы привязаны к структурам данных ядра, то написание тестов для ваших методов заставит вас абстрагироваться от этих структур данных для вашей логики и написать тонкие обертки вокруг них. Возможно, вы не дойдете до того момента, когда каждый бит вашего кода будет полностью протестирован, но я думаю, вы обнаружите - особенно если вы начнете с написания тестов сначала, как предполагает @Wambie, - что вы сможете тестировать больше, чем вы. Считается возможным, и ваш код будет лучше для него.

2 голосов
/ 05 декабря 2008

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

Разработка через тестирование TDD быстро набирает обороты и является одним из компонентов XP (Agile), который, похоже, действительно набирает обороты. Это стоит посмотреть.

1 голос
/ 05 декабря 2008

Похоже, что вы могли бы извлечь выгоду из некоторых базовых тестов, таких как: «Весь этот модуль затрачивает какие-либо данные при переносе их в другую операционную систему?», Но, кроме этого, будьте прагматичными.

Если это не помогает, не делайте этого. Тесты для тестирования - простой способ напрасно тратить время.

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