2010-06-07 10 views
19

Wiem, że jest to subiektywne pytanie ...Typemock - warte swojej ceny?

Typemock kosztuje 799 USD za programistę. Licencje dla 5 deweloperów stanowią dość dużą sumę. Jeśli ktoś tutaj używał Typemock i biorąc pod uwagę, że istnieją szydercze ramy open source, czy jest to warte tych pieniędzy? Czemu?

+0

Oceniłem Typemock.Po prostu nie robię wystarczająco dużo testów, aby to było warte zachodu. –

+1

Odniosłem wiele sukcesów z Rhino .... działa świetnie. –

+2

Być może warto przeformułować to, by zapytać, jakie funkcje TypeMock zapewnia, że ​​biblioteki typu "open source" nie mają - to pytanie, na które można odpowiedzieć przynajmniej częściowo obiektywnie. –

Odpowiedz

19

w naszym projekcie mieliśmy 12 licencji Typemock że mieliśmy do corocznego uaktualniania, ale Uważam, że było to warte każdego wydanego grosza (właściwie øre).

Dlaczego? Izolator Typemock ma jedną ważną zaletę: nie ustawia (prawie) żadnych ograniczeń na kodzie, który należy udawać. Prywatni konstruktorzy? Zapieczętowane klasy? Klasy statyczne? Nie ma problemu - możesz wyizolować wszystkie te rzeczy za pomocą Typemock.

Tylko przykład: musisz przetestować kod, który obsługuje SqlException z pewnymi właściwościami, jak to zrobić? SqlException jest klasą zamkniętą z niepublicznym konstruktorem. Możesz przyjść z różnymi obejściami, ale dopóki używasz zarządzanego kodu, nie ma bezpośredniego sposobu na kpiny SqlException.

Izolator Typemock przechwytuje twój kod jako profiler, przechodzi niezarządzany, więc otwiera się na znacznie potężniejsze kpiny. A jeśli masz do czynienia z pewnym produktem (np. SharePoint), to Isolator jest jedyną platformą, która może go obsłużyć, ponieważ jak to ujął, SharePoint to tylko kilka prywatnych zamkniętych klas.

Powiedziawszy to, ze względu na swoją moc Izolator Typemock wymaga od programistów bardziej dbania o testowalność własnego kodu. Używanie Isolatora jest łatwiejsze do napisania kodu, który nie może być przetestowany i nadal udaje się go przetestować za pomocą Isolatora (brzmi to sprzecznie, jak wiem). Ale zakładając, że masz swój własny kodeks prawy, Izolator Typemock jest bezcennym narzędziem do fałszowania komponentów innych firm, a kiedy mówię "trzecia strona", mam na myśli również rzeczy, które pochodzą od Microsoftu, i które nie zawsze są łatwe do sprawdzenia.

7

Częścią subiektywną jest twoja analiza, ile czasu (a zatem i pieniędzy) za pomocą Typemock uratuje Cię. Może pomóc Ci zacząć od tego, ile kosztuje cię czas pracy programisty. 100 USD? W takim razie, ile czasu zajmie, zanim Typemock zaoszczędzi ci 8 godzin?

Prawdopodobnie jedynym sposobem na inteligentną decyzję jest uzyskanie licencji na próbę i wykonanie rzeczywistych testów, aby sprawdzić, ile czasu to zaoszczędzono.

3

To prawdopodobnie nie jest tak obiektywna odpowiedź, jak chcesz, ponieważ pracuję tam, ale to jest lista kontrolna, nad którą pracowałem.

Jest to lista pytań, które chcesz zadać sobie przy ocenie jeden z obecnych ram Izolacja tam: http://site.typemock.com/isolation-framework-checklist

+1

byłoby przydatne, aby zobaczyć kilka instrukcji kodowych (a la Pex faceci) na TypeMockTV, a nie tylko 2 facetów strzelających sh * t. – AngryHacker

+0

AngryHacker - przykłady czego? – RoyOsherove

+1

przykłady sposobów radzenia sobie z różnymi problemami z izolatorem TypeMock - i pokazywanie kodu, który to robi. – AngryHacker

4

Pozwól mi przedmówić, że używam TypeMock regularnie w pracy i myślę, że jest to świetny produkt, ponieważ może ci pomóc przetestować wiele nietestowalnych kodu z całkiem czystym API.

Mimo to warto cofnąć się o krok i zadać sobie pytanie, czy programiści piszą dobrze zorientowany obiektowo kod i przestrzegają dobrych praktyk, czy też po prostu piszą zły kod, który wymaga ciężkich narzędzi i wiedzy (Aby uzyskać więcej informacji na temat złego kodu, patrz: http://googletesting.blogspot.com/2008/07/how-to-write-3v1l-untestable-code.html).

Będę niezmiernie szczęśliwy w dniu, w którym nasz kod ewoluował (tj. Został poddany renowacji) do punktu, w którym nie potrzebujemy narzędzia takiego jak TypeMock Isolator do prawidłowego przetestowania go.

Powiązane problemy