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

Ruby类继承测试遇TypeError: superclass must be a Class (Module given)如何解决?

解决Ruby嵌套类测试中的TypeError问题

核心问题与修复步骤

  1. 修正类定义的语法错误
    你写的代码里用了大写的Class,这不符合Ruby的语法规范——定义类的关键字是小写的class。错误的写法会导致A未被正确识别为类,Ruby会误将其当作模块处理,从而触发继承错误。

修复后的类定义可以选以下两种写法:

# 基础类定义
class A
end

# 写法一:外部嵌套定义子类
class A::B < A
end

或者更推荐的内部嵌套写法,避免歧义:

class A
  # 在A内部定义子类B,明确继承关系
  class B < A
  end
end
  1. 确保测试文件正确加载源码
    测试时要先加载包含A和A::B的源码文件,比如你的类定义在lib/a.rb,测试文件开头需要添加:
require_relative '../lib/a' # 根据实际文件路径调整

describe A::B, type: :class do
  # 编写你的测试逻辑
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:35:15