luis ruiz pavón

10
TESTEANDO LO INTESTEABLE CON EL FRAMEWORK DE MOLES Luis Ruiz Pavón http:// luisruizpavon.com http:// twitter.com/luisruizpavon

Upload: elena-guardado

Post on 18-Apr-2015

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Luis Ruiz Pavón

TESTEANDO LO INTESTEABLE CON EL

FRAMEWORK DE MOLES

Luis Ruiz Pavón

http://luisruizpavon.com

http://twitter.com/luisruizpavon

Page 2: Luis Ruiz Pavón

AGENDA 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

Page 3: Luis Ruiz Pavón

QUÉ ES EL FRAMEWORK DE MOLES 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).

Page 4: Luis Ruiz Pavón

QUÉ ES EL FRAMEWORK DE MOLES Delegatefs.ReadAllTextString = delegate(string f)

{

Assert.IsTrue(f == fileName);

return content;

};

Lambdafs.ReadAllTextString = (f) =>

{

Assert.IsTrue(f == fileName);

return content;

};

Page 5: Luis Ruiz Pavón

DIFERENCIA ENTRE STUBS Y MOCKS 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

Page 6: Luis Ruiz Pavón

DIFERENCIA ENTRE MOLES Y STUBS 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).

Page 7: Luis Ruiz Pavón

DIFERENCIA ENTRE MOLES Y STUBS 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.

Page 8: Luis Ruiz Pavón

CUANDO USAR MOLES Ó STUBS 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.

Page 9: Luis Ruiz Pavón

DEMOS