Вы правы, mock.expect(:use_any_string, true, [String])
приведет к сбою теста, если ожидаемый вызов не будет сделан на макете.
Однако использование mock.verify
зависит от того, как вы составите свой тест. В вашем примере вы явно вызываете метод, который вы тестируете с mock.use_any_string("foo")
, поэтому нет необходимости также вызывать mock.verify.
Вы можете попасть в сценарий, в котором вы не делаете этот вызов явно, или ожидаете, что у издевательства были сделаны вызовы в определенное время. В этих сценариях используются вызовы mock.verify.
(Еще одно замечание: minitest недавно представил assert_mock, который можно использовать вместо mock.verify)