Часть обоснования 2-го соглашения об именах, на которое вы ссылаетесь, заключается в том, что вы создаете тесты и поведенческие спецификации одновременно. Вы устанавливаете контекст, в котором происходит что-то, и что в действительности должно происходить в этом контексте. (По моему опыту, наблюдения / методы испытаний часто начинаются с "should_", поэтому вы получаете стандартный формат "When_the_invoicing_system_is_told_to_email_the_client", "should_initiate_connection_to_mail_server".)
Существуют инструменты, которые будут отражать ваши тестовые данные и выводить красиво отформатированный HTML-лист спецификации, удаляя подчеркивания. В итоге вы получите удобочитаемую документацию, которая синхронизируется с реальным кодом (при условии, что ваш тестовый охват будет высоким и точным).
В зависимости от истории / функции / подсистемы, над которой вы работаете, эти спецификации могут быть показаны и поняты заинтересованным сторонам, не являющимся программистами, для проверки и обратной связи, что лежит в основе гибкой и BDD в частности.