Your test is too long: we need to dive deeply into the details to understand what's going on.
The use of assertRegExp clearly shows that you're coupling your test to the view (parsing the response's content). This should be done in integration tests, functional tests target the controllers.

Let's take a new approach:

```php
<?php

namespace SensioLabs\JobBoardBundle\TestFunctional;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Component\HttpFoundation\Response;
use Doctrine\Common\DataFixtures\Purger\ORMPurger;

class AnnouncementTest extends WebTestCase
{
    public function testPreview()
    {
        $client = static::createClient();

        $client->request('GET', '/FR/full-time/not-found/preview');
        $response = $client->getResponse();

        $this->assertTrue($response->isNotFound());
    }

    public function testPost()
    {
        $client = static::createClient();

        $client->request('GET', '/post');
        $response = $client->getResponse();

        $this->assertTrue($response->isSuccessful());
    }

    public function testSavePost()
    {
        $client = static::createClient();

        $client->request('POST', '/post', array(
            'announcement[title]' => 'Developer',
            'announcement[company]' => 'SensioLabs',
            'announcement[country]' => 'FR',
            'announcement[city]' => 'Paris',
            'announcement[contract_type]'=> 'Full Time',
            'announcement[description]' => 'Some description...',
            'announcement[how_to_apply]' => 'jobs@sensiolabs.com',
        ));
        $response = $client->getResponse();

        $this->assertTrue($response->isSuccessful());
    }
}
```