Irk içinde assert_equal dosyasını çalıştırabilir misiniz? Bu çalışmıyor.Ruby'de, irb içinde iken assert_equal ve diğer asserleri çalıştırabilir misiniz?
require 'test/unit'
assert_equal(5,5)
Irk içinde assert_equal dosyasını çalıştırabilir misiniz? Bu çalışmıyor.Ruby'de, irb içinde iken assert_equal ve diğer asserleri çalıştırabilir misiniz?
require 'test/unit'
assert_equal(5,5)
Elbette yapabilirsin! Neler oluyor
require 'test/unit'
extend Test::Unit::Assertions
assert_equal 5, 5 # <= nil
assert_equal 5, 6 # <= raises AssertionFailedError
tüm iddiaların Testi :: Birimi :: İddialar modülünde yöntemler olmasıdır. Bu modülün irb içinden genişletilmesi, bu yöntemleri main
'da sınıf yöntemleri olarak kullanılabilir hale getirir, bu da bunları doğrudan irb komutunuzdan çağırmanızı sağlar. (Gerçekten, herhangi bir bağlamda extend SomeModule
'u çağırmak, bu bağlamdaki yöntemleri aynı bağlamdan arayabileceğiniz bir yere koyacaktır - main
sadece varsayılan olarak nerede olduğunuza göre olur.)
Ayrıca, iddialar Bir TestCase
içinden koşmak, semantik beklenenden biraz farklı olabilir: true veya false döndürmek yerine, nil döndürür veya bir hata oluşturur.
Ayrıca ben test edilmekte olan kodunda assert
kullanmayın
raise "Something's gone wrong" unless 5 == 5
yapabilirsiniz, ben sadece deneme kodunda kullanın.
Doğru cevabı,
require 'test/unit/assertions'
include Test::Unit::Assertions
Vay. harika!! internet üzerinden arama yaptıktan sonra. Bu çözümü buldum. @ Nilesh – Aravin
Bu mükemmeldi. Hızlı cevabınız için teşekkür ederim. Sadece uzantı ifadesinden sonra alıntıları kaldırmak için gerekli. – Chris
Whoops, test etmediğim şey bu. :-) Sabit ve biraz daha fazla açıklama (sizin veya gelecekteki izleyiciler için) doldurulur. –
IRB'de true/false döndürmesini istiyorsanız, sadece == kullanın. 5 == 5 # => true 5 == 6 # => false –