Creo que está generalmente bien (introduciría una constante de cadena para su SQL para evitar repetirlo, por cierto).
Por supuesto, la única cosa que no está probando con esto es la interacción real con la base de datos (ya que esto se está burlando). Entonces, ¿esperaría una prueba correspondiente (o un conjunto de?) Que en realidad interactúe con la base de datos, e inserte/replique según corresponda. De lo contrario, estás probando algo que (en este momento) es bastante trivial.
Una nota sobre la organización de la prueba. A continuación, se prueban 2 cosas (la construcción nula falla y la construcción normal tiene éxito). Yo dividiría esto en dos pruebas, de lo contrario, si la primera sección falla, nunca prueba la segunda sección (en escenarios más complejos, esto hace que el diagnóstico de fallas sea más difícil, ya que puede no tener tanta evidencia como necesite)
public void testPostDAO() {
try {
new PostDAO(null);
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException ex) {}
new PostDAO(connectionMock);
}
Algunas personas se oponen a la prueba new PostDAO(null)
debido a su trivialidad. Estoy en desacuerdo. Una de las razones por las que escribe las pruebas es para garantizar que el comportamiento de no cambie a menos que lo espere al. Entonces, lo anterior es bueno. Simplemente lo dividiría en dos pruebas explícitas.
Los enlaces pastebin están muertos. –
sin los enlaces, esta pregunta pierde sentido. – Asgaroth
Difícil de seguir sin ningún código ... –