Код с высокой степенью тестирования имеет тенденцию структурироваться иначе, чем другой код.
Вы описываете несколько задач, которые должен выполнять распределитель:
- объединение свободных блоков
- повторное использование свободных блоков на следующем
Распределение
- возврат избыточной свободной памяти
система
- утверждая, что политика выделения
(например, в первую очередь) действительно уважают
Несмотря на то, что вы могли бы написать свой код распределения как очень связанный, как при выполнении нескольких из этих вещей внутри одного тела функции, вы также можете разбить каждую задачу на код, который является тестируемым фрагментом. Это почти инверсия того, к чему вы привыкли. Я считаю, что тестируемый код имеет тенденцию быть очень прозрачным и построен из более мелких частей.
Далее, я бы сказал, что в любом случае автоматическое тестирование любого рода лучше, чем отсутствие автоматического тестирования. Я определенно сосредоточился бы больше на том, чтобы убедиться, что ваши тесты делают что-то полезное, чем на том, чтобы беспокоиться о том, правильно ли вы использовали макеты, гарантировали ли вы, что он должным образом изолирован и действительно ли это модульный тест. Это все замечательные цели, которые, надеюсь, сделают 99% тестов лучше. С другой стороны, пожалуйста, используйте здравый смысл и свое лучшее инженерное решение, чтобы выполнить работу.
Без примеров кода я не думаю, что могу быть более конкретным.