Цитата:
поэтому ожидаю, что высказывающиеся расскажут не только о приемах правильного unit-тестирования, но и о том какие цели удовлетворяются при том или ином приеме
Вообще, целью unit тестирования для меня является минимальная гарантия того, что я смогу сегодня ночью спокойно спать и меня не разбудят со словами, что что-то отвалилось.
С этой же задачей хорошо справляется строгая статическая типизация, которую по эффективности я бы поставил даже на первое место. Именно она - та причина, по которой в production я предпочту использовать f# или haskell, а не clojure. Именно она является причиной того, что я буду пропагандировать TypeScript и настаивать на его использовании вместо JS.
Если твои цели совпадают с моими, может просто рассмотреть другие способы проверки работатоспособности продукта, нежели unit тесты, которые не очень вписываются в концепцию продукта ?