Las diferencias son explained in this article
Si crea expectativas en un StrictMock
, y un método es llamado en el simulacro, se lanzará una excepción.
Si no crea expectativas en un PartialMock
, y se invoca un método en el simulacro, no ocurre nada especial. Si ese simulacro deriva de una clase base, la llamada se transfiere a la implementación base existente.
También hay algo llamado DynamicMock
. Si no crea expectativas en un DynamicMock
, y se llama a un método en el simulacro, se llama a un método stub. Si hubo un valor de retorno, se devuelve un valor predeterminado (por ejemplo, null
o 0
).
GenerateMock
Creo que crea un DynamicMock
.
Ayende eligió este valor predeterminado porque recomienda un ideal de solo usar DynamicMock
y Stub
. StrictMock
crea pruebas frágiles, y generalmente viola el concepto de solo verificar un comportamiento por prueba.
Ver este artículo: http://ayende.com/wiki/Rhino%20Mocks%203.5.ashx#CreateMockisdeprecated,replacedbyStrictMockTheuseofStrictMockisdiscouraged
También he visto que diga que es útil comenzar con burla estrictas, y trabajar sus pruebas de vuelta a los simulacros dinámicos/talones de una vez que se sienta cómodo con la forma en su código -under-test se está comportando. Ningún enlace para eso: :)