Ruby Minitest 简单测试引发错误 - 错误的参数数量错误
Ruby Minitest simple test raise error - wrong number of arguments error
我正在尝试学习 TDD 方法,为此我使用的是纯 Ruby 应用程序,它负责格式化英国 phone 号码。在我的 class 中,我想测试空格和是否从给定的 phone 数字中删除。基本上我正在尝试测试 Ruby .delete(' ')
方法。
测试模块
# lib/formatter/phone_number/uk.rb
module Formatter
module PhoneNumber
module Uk
(...)
def self.format(number)
number.delete(' ')
end
end
end
end
测试
# test/lib/formater/phone_number/uk_test.rb
require 'minitest/autorun'
class UkTest < Minitest::Test
test 'remove whitespaces' do
invalid_number = '+44 12 12 12 12 '
Formatter::PhoneNumber::Uk.format(invalid_number)
assert_equal '+4412121212'
end
end
哪个给我一个错误:
test/lib/formater/phone_number/uk_test.rb:6:in `test': wrong number of arguments (given 1, expected 2) (ArgumentError)
除了测试 Ruby 中内置的方法不是一个好主意之外,我做错了什么?
您必须定义一个测试方法(方法名称必须以 test_
开头)。
在测试方法中定义断言。在您的情况下,您将预期值与方法的结果进行比较。
class UkTest < Minitest::Test
def test_remove_whitespaces
invalid_number = '+44 12 12 12 12 '
assert_equal '+4412121212', Formatter::PhoneNumber::Uk.format(invalid_number)
end
end
一个文件中的完整测试:
module Formatter
module PhoneNumber
module Uk
def self.format(number)
number.delete(' ')
end
end
end
end
require 'minitest/autorun'
class UkTest < Minitest::Test
def test_remove_whitespaces
invalid_number = '+44 12 12 12 12 '
assert_equal '+4412121212', Formatter::PhoneNumber::Uk.format(invalid_number)
end
end
与 minitest/spec
相同的测试
require 'minitest/spec'
describe Formatter::PhoneNumber::Uk do
it 'removes spaces from numbers' do
invalid_number = '+44 12 12 12 12 '
_(Formatter::PhoneNumber::Uk.format(invalid_number)).must_equal('+4412121212')
end
end
我正在尝试学习 TDD 方法,为此我使用的是纯 Ruby 应用程序,它负责格式化英国 phone 号码。在我的 class 中,我想测试空格和是否从给定的 phone 数字中删除。基本上我正在尝试测试 Ruby .delete(' ')
方法。
测试模块
# lib/formatter/phone_number/uk.rb
module Formatter
module PhoneNumber
module Uk
(...)
def self.format(number)
number.delete(' ')
end
end
end
end
测试
# test/lib/formater/phone_number/uk_test.rb
require 'minitest/autorun'
class UkTest < Minitest::Test
test 'remove whitespaces' do
invalid_number = '+44 12 12 12 12 '
Formatter::PhoneNumber::Uk.format(invalid_number)
assert_equal '+4412121212'
end
end
哪个给我一个错误:
test/lib/formater/phone_number/uk_test.rb:6:in `test': wrong number of arguments (given 1, expected 2) (ArgumentError)
除了测试 Ruby 中内置的方法不是一个好主意之外,我做错了什么?
您必须定义一个测试方法(方法名称必须以 test_
开头)。
在测试方法中定义断言。在您的情况下,您将预期值与方法的结果进行比较。
class UkTest < Minitest::Test
def test_remove_whitespaces
invalid_number = '+44 12 12 12 12 '
assert_equal '+4412121212', Formatter::PhoneNumber::Uk.format(invalid_number)
end
end
一个文件中的完整测试:
module Formatter
module PhoneNumber
module Uk
def self.format(number)
number.delete(' ')
end
end
end
end
require 'minitest/autorun'
class UkTest < Minitest::Test
def test_remove_whitespaces
invalid_number = '+44 12 12 12 12 '
assert_equal '+4412121212', Formatter::PhoneNumber::Uk.format(invalid_number)
end
end
与 minitest/spec
require 'minitest/spec'
describe Formatter::PhoneNumber::Uk do
it 'removes spaces from numbers' do
invalid_number = '+44 12 12 12 12 '
_(Formatter::PhoneNumber::Uk.format(invalid_number)).must_equal('+4412121212')
end
end