Luis Ruiz Pavón
Qué es el framework de Moles Diferencia entre Stubs y Mocks Diferencia entre Moles y Stubs Demo Stubs (Moles) y Mocks (Moq) Demo testing ASP.NET Demo testing librería de terceros Demo testing SharePoint
Es un framework de Stubs, pero además nos permite testear clases selladas, clases con constructores privados, métodos estáticos, no virtuales… mediante el uso delegados (o lambdas).
Delegate fs.ReadAllTextString = delegate(string f) { Assert.IsTrue(f == fileName); return content; }; Lambda fs.ReadAllTextString = (f) => { Assert.IsTrue(f == fileName); return content; };
Stubs sirven para simular funcionalidad. Mocks sirven para comprobar interacción a través de caracterísiticas de verificación. Para hacer mocking hace falta hacer stubbing
Stubs: Para testear clases que implementan interfaces o clases no selladas con métodos que se pueden sobreescribir (Esto podría hacerse con otros frameworks de mock tales como Moq, RinhoMocks…) Moles: Para testear clases selladas y con métodos estáticos o que no se pueden sobrescribir (Clases que tenga fuertes dependencias).
Stubs: Empieza por el prefijo S. Para un tipo T tendremos una implementación de cada método virtual o abstracto, propiedades y eventos. Moles: Empiezan por el prefijo M y para un tipo T tendremos una implementación para cada miembro no abstracto.
Usaremos stubs para aislar dependencias haciendo usos de interfaces. Usaremos moles cuando necesitemos testear frameworks o código de terceros que no suministran un API testeable.
Microsoft Research Pex & Moles us/projects/pex/ us/projects/pex/ Descargas us/projects/pex/downloads.aspx us/projects/pex/downloads.aspx Geeks oles oles