It is a personal preferences in the end of the day.
What I would do is following what Jeffrey has shown us in the TDD lessons.
I would separate the test into smaller more easily understandable-readable tests.
For example if I have 2 fields that need validation I would create 2 tests for each a_post_requires_a_title so after once tested this then in the an_authenticated_user_can_create_new_forum_post you do will just send a validation friendly data as you already know it is fine.
Smaller test - better readability, easier to understand if you go again in 6 months fo a change or someone else picks it, and then if a functionality is changed then only the small piece of test would be amended rather than going trough the big test - for example later on the client decides that the title is not only required as you have tested in a_post_requires_a_title but also it needs atleast 20 chars - then you would go to the 'big' test and amend it rather than just creating additional small test for the or amending the a_post_requires_a_title with a better title of course.
When you separate the big test into smaller then you will find out that all the comments you have placed could be actually removed entirely as that will be explained in the test name itself.
In addition try creating some helper functions.
Hope that helps.