最进使用Ruby测试框架,选择使用 Test::Unit作为测试方法,下面的代码整理了常用的断言语法(其他的可能基本不太可能用上).当然对应的断言语法大多数都有not的反义判断.比如assert_true 和assert_not_true.
整体来说,感觉不太够用,毕竟这个库比较老.接下去可能会研究下minitest的源码.最后不行的话,可能会自己动手写测试框架.rspec还是算了
require 'test/unit' class TestUnitAssertionsTest < Test::Unit::TestCase
def setup
end
def test_assertions
assert_block "block返回值不正确" do true end assert_equal('Yes', 'Yes') assert 1, '对象不能为false和nil' assert_true true assert_raise '需要抛出一个异常' do raise Exception end assert_nothing_raised '不能抛出异常' do end assert_raise_message "exception" do raise "exception" end
assert_instance_of String, '', '预期的类型和实际类型不符' assert_nil nil assert_respond_to 'a string', :reverse, '对象预期的方法不存在' assert_match(/\d+/, 'five, 6, seven') o = Object.new assert_same o, o assert_empty("") assert_empty([]) assert_empty({}) assert_path_exist("/tmp")
flunk '强制断言失败.看到这条失败断言,表示上面所有的断言通过.' end
def teardown
end
end
|
$ ruby assertions_test.rb -v --use-color=true ... Started F =============================================================================== Failure: 强制断言失败.看到这条失败断言,表示上面所有的断言通过. test_assertions(AssertionsTest) assertions_test.rb:41:in test_assertions 38: assert_empty({}) 39: assert_path_exist("/tmp") 40: => 41: flunk '强制断言失败.看到这条失败断言,表示上面所有的断言通过.' 42: end 43: 44: ===============================================================================
Finished in 0.001588 seconds.
1 tests, 17 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 0% passed
629.72 tests/s, 10705.29 assertions/s
Process finished with exit code 1
|