Каждый и его собака зовут File.open
. Я мог представить массу причин, по которым он вызвал бы: RSpec читает его файл конфигурации, Rails читает его файл (ы) конфигурации, Cucumber читает его файл конфигурации, отладчик создает временный файл, что-то еще создает временный файл и так далее.
Вы должны проверить , кто звонит File.open
, , где происходит этот вызов, что такое аргументы и почему это случается.
Но это то, с чем вам придется иметь дело, устанавливая ожидания для основных методов.
Представьте себе, например, что вы запускаете свои спецификации на Рубиниусе. В Rubinius компилятор написан на Ruby. В настоящее время он не кэширует свои скомпилированные результаты, но вполне возможно, что он может кэшировать их, и тогда он, естественно, будет использовать File.open
. Бам! Теперь ваши характеристики случайным образом нарушаются в зависимости от того, достигли вы порога JIT или нет.
Или, что еще хуже: весь Рубиниус широко использует массивы и символы для реализации практически всего. Попробуйте установить некоторые ожидания на эти !