You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby Minitest测试UK手机号格式化方法报参数数量错误如何解决

问题原因及修复方案
  • 问题1:Minitest语法依赖缺失导致参数报错
    你使用的test '用例名' do ... end是Minitest Spec风格的DSL语法,原生Minitest::Test默认不支持该写法,在没有引入minitest/spec依赖的情况下直接调用,就会触发test方法参数不匹配的错误。
    修复方案二选一:
  1. 保留Spec风格写法,在测试文件头部新增require 'minitest/spec'
  2. 改用原生Minitest写法,将测试用例定义为以test_开头的实例方法:
def test_remove_whitespaces
  # 测试逻辑
end
  • 问题2:assert_equal参数缺失
    assert_equal要求传入预期值和实际运行结果两个参数,你当前只传入了预期值,没有把format方法的执行结果作为第二个参数传入,即使修复第一个报错,后续运行也会触发新的参数错误。
  • 问题3:路径拼写错误(潜在加载问题)
    你的模块存放在lib/formatter/...路径下,但测试文件放在test/lib/formater/...路径,formatter少写了一个字母t,后续自动加载代码时会找不到对应模块。

修复后完整测试代码示例:

# test/lib/formatter/phone_number/uk_test.rb 注意路径拼写已修正
require 'minitest/autorun'
# 引入spec依赖支持test '描述'语法
require 'minitest/spec'

class UkTest < Minitest::Test
  test 'remove whitespaces' do
    invalid_number = '+44 12 12 12 12   '
    # 保存format方法执行结果
    result = Formatter::PhoneNumber::Uk.format(invalid_number)
    # 传入预期值+实际值两个参数
    assert_equal '+4412121212', result
  end
end

内容的提问来源于stack exchange,提问作者mr_muscle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:48:04