2009-04-28 26 views
7

Ben moq alay çerçevesini seviyorum. Birkaç projede kullandım. Ne yazık ki, müşterilerimden biri VB.Net'i kullanmamızı talep ediyor. Benim tercihim değil, hey, Net. Net, değil mi?Deneyimlerim moq with vB.Net

Bu moq'un VB ile bazı sorunları olduğunu duydum. Bu doğru mu? Öyle mi, ne tür bir bela mı? Dilin agnostik doğası gereği iyi çalışmasını beklerdim.

VB ile kullanım için başka bir alay çerçevesini kullanmayı denemeli miyim?

cevap

6

VB.net'in alay çerçevelerine ilişkin temel problemi, C# 'nun aksine, VB'nin anonim yöntemlere sahip olmaması, sadece Lambda ifadeleri (anonim Eylem delegesini bildirmenin bir yolu yoktur).

Bu, olasılıkları ciddi şekilde sınırlar. Parametre özelliklerinde bilinen bir sorun da var.

Ayrıca, lambdas için dilin sözdizimi C#, okunabilirlik (hiçbir alev lütfen, ben bir VB kullanıcısıyım ve bazı C# özelliklerini her gün özlüyorum) kadar temiz bir şeye yol açmaz ve bu kısmen Moq için cazibe.

VB ile ilgili olarak bildiğim tek test çerçevesi TypeMock. VB söz dizimi ile uyumlu bir şey tasarlamaya çalıştılar.

+0

Parametreli özelliklerle ilgili bir sorun var mı? –

+0

Konuya gönderme yapıyorum 61: http://code.google.com/p/moq/issues/detail?id=61 Yükseltildiğinden beri bakımının yapılıp yapılmadığını bilmiyorum. –

+3

_ "C# 'nun tersine, VB [.NET] adsız yöntemlere sahip değil, yalnızca Lambda ifadeleri (anonim bir Eylem temsilcisinin bildirilmesinin bir yolu yok.)" _ - VB.NET 10 ile tahmin ediyorum (Nisan 2010'da VS 2010 ile birlikte yayınlanıyor) 2010), bu artık doğru değil: Artık anonim 'Sub's yerinde, hatta çok satırlı olanlar yazabilirsiniz. - Ayrıca "lambda ifadesi" ve "anonim Eylem delegesi" terminolojisine katılmıyorum. Hem C# hem de VB.NET'te, anonim temsilciler temel olarak lambda işlevleri ile aynı şeydir; sadece sözdizimi biraz farklı olabilir. – stakx

1

AFAIK Typemock Isolator, tamamen VB.NET ile dalga geçebilen tek araçtır. Özellikle bunun için bir API yaptılar.

+1

yep. örnek şudur: http://site.typemock.com/vbpage/2009/9/10/unit-testing-vbnet.html – RoyOsherove