OK, sé que ha habido mucha confusión sobre la nueva sintaxis AAA en burla de Rhino, pero tengo que ser honesto, por lo que he visto hasta ahora, me gusta. Lee mejor y ahorra algunas teclas.se burla de Rhino - Trozo .Expect vs .AssertWasCalled
Básicamente, estoy probando un ListController
que básicamente se encargará de algunas listas de cosas :) He creado una interfaz que eventualmente se convertirá en el DAL, y esto por supuesto se está cortando por ahora.
que tenían el siguiente código:
(manager
es el sistema bajo prueba, data
es la interfaz de datos stubbed)
[Fact]
public void list_count_queries_data()
{
data.Expect(x => x.ListCount(1));
manager.ListCount();
data.VerifyAllExpectations();
}
El principal objetivo de esta prueba es asegurar simplemente que el gerente es en realidad consultar el DAL. Tenga en cuenta que el DAL no es realmente incluso allí, así que no hay valor "real" volver ..
Sin embargo, esto está fallando ya que necesito para cambiar la expectativa de tener un valor de retorno, como:
data.Expect(x => x.ListCount(1)).Return(1);
Esto funcionará bien, y la prueba pasará, sin embargo - lo que me confunde es que en este momento, el valor de retorno significa nada. Puedo cambiarlo a 100, 50, 42, lo que sea y la prueba siempre pasará?
Esto me pone nervioso, porque una prueba debe ser explícita y debe fallar por completo si no se cumplen las condiciones previstas ¿no?
Si cambio de la prueba a (el "1" es el ID esperado el conteo está vinculada a):
[Fact]
public void list_count_queries_data()
{
manager.ListCount();
data.AssertWasCalled(x => x.ListCount(1));
}
Todo pasa bien, y si me cambio la prueba en su cabeza a AssertWasNotCalled
, falla como se esperaba ... ¡También creo que se lee mucho mejor, es más claro sobre lo que se está probando y lo más importante PASA y NO PASA como se esperaba!
Entonces, ¿me falta algo en el primer ejemplo de código? ¿Qué piensas sobre hacer afirmaciones en los talones? (Hubo alguna discusión interesante here, personalmente me ha gustado this response.
estuvo de acuerdo - gracias por la mano a mano, una pregunta muy vieja que se había perdido en el polvo. –