rspecするときに既存のrequireをしない
Rspecで外部依存しているクラスをテストするときに、外部モジュールをrequireしてほしくないんだけど、それをどうやって抑止するかやってみました。
(正確には、実際には別の事情で使えなくなってしまったので、くやしいのでメモしておく)
if !$".inject(false){|b, i| b |= i.match("rspec")} require 'hoge' end
みたいなのをソース側に書いておくと、
require 'rspec' require 'target' #上のソースのこと it('runs sample module'){ testrun("test").should be_true }
みたいなことをしても、「hogeとかねーよ!」という怒られ方をしません。
当然、hogeの代わりのmockかstubを用意する必要はあるので、こちらはご自分でどうぞ。