2013-05-28 3 views
21

Postanowiłem wypróbować MiniTest i dość szybko zauważyłem, że obsługuje coś, co nazywa się "specyfikacją". Widziałem te referenced before, ale myślałem, że to tylko alternatywna składnia testowa związana z fabrykami, ale jeśli tak, to dlaczego MiniTest musiałby je wspierać?Jaka jest różnica między testami i specyfikacją?

Badanie dotyczyło tylko testów Ruby on Rails, więc nie wiem nic o specyfikacjach. Kiedy specyfikacje Google znajduję wiele rzeczy o tym, jak pisać dobre, ale nic nie wyjaśnia, co one są . Jaka jest różnica między testami i specyfikacją?

Odpowiedz

10

Google dla testów kontra specyfikacje. Niektóre dobrze czyta pop-up:

Moja opinia jest taka, że ​​specyfikacje czytaj więcej „naturalny” i czują się bardziej jak prawdziwi specyfikacji funkcjonalności kodu w porównaniu do mini -test et.al.

Rspec to dobry przykład DSL, napisany specjalnie do pisania testów, które mają sens w czytaniu, nawet dla osób mniej skłonnych technicznie.

Ale na koniec użyj tego, co sprawia, że ​​czujesz się bardziej komfortowo. Test napisany jest prawie zawsze lepszy niż żaden test pisemny, bo czujesz się nieswojo przy użyciu ramach testów

zmienił

Po rereading swoje pytanie, to wydaje się specjalnie poprosić o specyfikacji mini-testu. Jest to dodatek do minitests, który dodaje minitest do składni podobnej do rspec. Wszystko powyżej nadal obowiązuje.

21

Specyfikacja, która jest skrótem od specyfikacji, pochodzi z testów opartych na zachowaniu i zachęca do myślenia, gdzie definiuje się "co" oprogramowanie robi.

Wywołanie tego testu prowadzi do znacznie bardziej ogólnego myślenia o kodzie i nie wzmacnia idei, że powinieneś testować interfejs (a nie implementację).

To powiedziawszy, niezależnie od tego, jak je piszesz, lub jak je nazywasz, chodzi o to, aby mieć automatyczny sposób sprawdzania poprawności kodu, abyś mógł kontynuować pracę z zaufaniem.

+4

+1 za "spec, skrót od specyfikacji", skurcze zawsze pozwalają mi zgadywać – Jackson