Может ли возникать исключение InvalidStateStoreException, когда локальное хранилище состояний получается из контекста ProcessorContext внутри Processor :: init или Transformer :: init, т.е.
blockquote>Нет.
init()
не будет вызвано, пока магазин не будет готов. Таким образом,InvalidStateStoreException
никогда не произойдет.Мы храним ссылку на KeyValueStore userStore и используем ее позже для изменения userStore внутри Punctuator :: punctuate. Стоит ли беспокоиться о получении исключения InvalidStateStoreException при любых операциях put / get / delete с этим хранилищем?
blockquote>Нет. Вы можете смело читать / писать в магазине.
InvalidStateStoreException
никогда не произойдет.punctuate()
выполняется тем же потоком, что иprocess()
, и это гарантирует, что хранилище готово при вызовеpunctuate()
.
Я использую RSpec вместо, должен иметь, (хотя я полагаю, что это должно иметь, может использоваться с RSpec), и самое большое улучшение моего рабочего процесса прибыло из использования Автотеста и затем RSpactor.
Эти инструменты автоматически контролируют Ваше исходное дерево для изменений и выполняют соответствующие тесты если обновление или тест или файл реализации. Довольно небольшое изменение практики тестирования, но непосредственного канала назад увеличило мою дисциплину в записи тестов для каждой части функциональности.
+1 для Автотеста.
Если Вы имеете большой набор тестов и только хотите запустить тест, Вы продолжаете работать (в противоположность целому набору тестов), проверяют этот патч обезьяны для Автотеста.
Что касается других инструментов необходимо проверить Девочку Фабрики как замену приспособлений.
Большая часть того, что я знаю об использовании, Должна иметь, прибыл путем чтения тестового кода других. Проверьте некоторые проекты Thoughtbot на GitHub, такие как Разрешение и Pacecar.
Я полностью соглашаюсь, что существует значительный разрыв в направляющих BDD documentaion. Много небольших примеров, но никаких больших, дающих общую картину того, как сделать это. Даже книги, которые имеют главы по тестированию, являются виной этого. Единственными полными примерами, которые я видел, являются три скринкаста части peepcode на rspec и видео на confreaks о насмешке гибкого провода.
Я хотел бы услышать о других хороших ресурсах на BDD, которые идут вне незначительных примеров синтаксиса, и я действительно хотел бы, см. книгу по теме.