1

我在当前项目中使用 STI,并希望能够单独测试基类。不幸的是,当我尝试创建基类的实例时,插入type列中的假值会导致错误。

无效的单表继承类型:fakevalue 不是 MyTable 的子类

由于我可能拥有无限数量的子类,因此我希望能够在与子类完全隔离的情况下测试我的基类。由于 Rails 正在检查子类,这似乎是不可能的。

有办法吗?

4

1 回答 1

1

因此,在与同事讨论后,我们得出了以下解决方案。

在规范文件中,我添加了一个空的虚拟类并从我的基类继承。然后我可以使用这个虚拟类进行测试。由于虚拟类是空的,唯一被测试的逻辑是基类。然后我可以添加/删除子类,而不必担心破坏基类测试。

于 2014-09-15T18:04:45.557 回答