Os cuento mis impresiones!

- Es mejor que el nombre del test no utilice términos de la implementación, sino del negocio. El nombre `iShouldInvokeSendMethod` podría cambiarse a `itSendsEmails`. Si mañana cambiar el nombre del método cambiaremos el expect, pero no hará falta cambiar el nombre del enunciado.
- `$mailer` se declara en la primera linea del arrange, pero se sobreescribe después en la línea 24.
- `$contactMock` no se utiliza.

Aparte de estos detalles, creo que el test sería mucho más adecuado como **test unitario**. Ahora mismo es un **test de controlador**, pero no hay ningún controlador implicado. Por lo tanto en lugar de extender `BaseControllerTest` extendería `PHPUnit_Framework_TestCase` directamente.

El factory girl, como decía @franmomu hace unos meses en otro comentario, es sobre todo para crear entidades en la base de datos fácilmente. Si necesitáis instancias de prueba en tus test unitarios puedes crear mocks. Aquí creáis un mock para `Contact`, pero tanto la instancia de `Mailer` como la configuración son reales. Mi alternativa a este test sería algo como:

```
// Arrange
$mailerMock =$this->getMockBuilder('\Swift_Mailer')
    ->disableOriginalConstructor()
    ->getMock();
$contact = $this->getMock('Contact');
$contact_settings = array(...);
$mailer = new Mailer($mailerMock, $contactConfiguration);

// Expect
$mailerMock->expects($this->once())->method('send');

// Act
$mailer->sendContactEmail($contact);
```