2012-05-05 16 views
17

MiniTest 2.12.1 (Ruby> = 1.9 ile birlikte gelen stok test çerçevesinin en son sürümü) kullanıyorum ve sınıf yöntemiyle sınıfının nasıl kullanıldığını anlayamıyorum. örneğin Mocha:Ruby: MiniTest ile sınıf yöntemini mi kullanıyorsunuz?

product = Product.new 
Product.expects(:find).with(1).returns(product) 
assert_equal product, Product.find(1) 

günlerdir interneti kurmuştur oldum ve bu konuya makul bir cevap bulmak için hâlâ. Lütfen yardım et?

+0

'minitest/mock', [? Çoğaltılamaz] ile _mocking_ bu tür yapmak mümkün değildir (http://stackoverflow.com/questions/7211086/how-do-i-stub-things-in-minitest) – fguillen

cevap

17

2.12.1 ile takılırsanız bu size yardımcı olmayabilir, ancak HEAD here numaralı makalede minitest/alay için kullanılan yöntem eklediklerine benzer.

Yani, minitest HEAD güncellemek vardı, bunu yapabileceğini düşünüyorum: Bence

product = Product.new 
Product.stub(:find, product) do 
    assert_equal product, Product.find(1) 
end 
+0

En minik HEAD için nasıl güncellenir? (teşekkürler!) – mpelzsherman

+0

Bunu yazdığımdan beri yeni bir sürümü etiketledikleri anlaşılıyor, dolayısıyla HEAD için güncelleme gerekli değil. En son sürüm 3.5.0 şimdi. Eğer bundler kullanıyorsanız, Gemfile: 'gem 'minitest', '3.5.0' 'gibi bir satırınız olduğundan emin olarak minimize edebilirsiniz. Eğer HEAD versiyonunu çalıştırmak istiyorsanız, bunun yerine Gemfile'ınızda buna sahip olursunuz: 'gem 'minitest',: git => 'git: // github.com/seattlerb/minitest.git'. Bundler kullanmıyorsanız, 'gem güncelleme minitest' yapmalıyım. – Adam

+0

Sadece açıklığa kavuşturmak için: bu sorudaki mocha çözümüyle tam olarak eşdeğer değildir: '.find' çağrısının parametreleri bu çözümle doğrulanmamıştır ... – severin

İlgili konular