Jas*_*Jas 1 ruby unit-testing mocking
我有number_module.rb内容:
def power2(x)
x * x
end
Run Code Online (Sandbox Code Playgroud)
和测试用例tc_number.rb:
require_relative('number_module')
require "test/unit"
require 'mocha/test_unit'
class TestSimpleNumber < Test::Unit::TestCase
def test_simple
assert_equal(4, power2(2) ) # how to mock power2 to return 3?
end
end
Run Code Online (Sandbox Code Playgroud)
为了练习嘲笑我想在测试用例中模拟power2 3而不是powering by 2我怎么能这样做?
从文档中看起来你可以使用expects(:method_name).returns(result):
def power2(x)
x * x
end
require "test/unit"
require 'mocha/test_unit'
class TestSimpleNumber < Test::Unit::TestCase
def test_simple
expects(:power2).returns(3)
assert_equal(4, power2(2) )
end
end
Run Code Online (Sandbox Code Playgroud)
测试按预期失败:
Loaded suite mocha
Started
F
=============================================================================================================================================================
Failure: test_simple(TestSimpleNumber)
mocha.rb:10:in `test_simple'
7: class TestSimpleNumber < Test::Unit::TestCase
8: def test_simple
9: expects(:power2).returns(3)
=> 10: assert_equal(4, power2(2) ) # how to mock power2 to return 3?
11: end
12: end
<4> expected but was
<3>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |