2009-04-28 14 views
7

Me gusta mucho el framework moq mocking. Lo he usado en varios proyectos. Desafortunadamente, uno de mis clientes exige que usemos VB.Net. No es mi preferencia, pero bueno, .Net es .Net, ¿verdad?Experiencias usando moq con VB.Net

He oído que moq tiene algunos problemas con VB. ¿Es esto cierto? Es así, ¿qué tipo de problema? Esperaría que funcionara bien dada la naturaleza agnóstica del lenguaje de .Net.

¿Debo buscar otro marco de burla para usar con VB?

Respuesta

6

El principal problema de VB.net con respecto a los marcos de burla es que, al contrario de C#, VB no tiene métodos anónimos, solo expresiones Lambda (no hay manera de declarar un delegado de Acción anónimo).

Esto limita severamente las posibilidades. También existe un problema conocido con las propiedades con parámetros.

Además, la sintaxis del lenguaje para lambdas no lleva a algo tan limpio como C#, facilidad de lectura (no llamas, por favor, soy usuario de VB y echo de menos algunas características C# todos los días), y eso es en parte la atracción para Moq.

El único marco de prueba que conozco que hizo algo con respecto a VB es TypeMock. Intentaron diseñar algo que se combina con la sintaxis de VB.

+0

¿Qué tipo de problema existe con las propiedades parametrizadas? –

+0

Me refiero al número 61: http://code.google.com/p/moq/issues/detail?id=61 No sé si se ha tenido en cuenta desde que se planteó. –

+3

_ "Al contrario que C#, VB [.NET] no tiene métodos anónimos, solo expresiones Lambda (no hay manera de declarar un delegado anónimo de Acción)." _ - Supongo que con VB.NET 10 (lanzado con VS 2010 en abril 2010), esto ya no es cierto: ahora puede escribir 'Sub's anónimos en el lugar, incluso los de varias líneas. - También estoy en desacuerdo con la terminología "lambda expression" vs. "anonymous Action delegate". Tanto en C# como en VB.NET, los delegados anónimos son fundamentalmente lo mismo que las funciones lambda; solo la sintaxis puede ser ligeramente diferente. – stakx

1

AFAIK Typemock Isolator es la única herramienta que puede simular completamente VB.NET. Hicieron una API especialmente para eso.

+1

sí. el ejemplo está aquí: http://site.typemock.com/vbpage/2009/9/10/unit-testing-vbnet.html – RoyOsherove