我在当前项目中使用STI,并希望能够单独测试基类。不幸的是,当我尝试创建基类的实例时,插入type
列的伪值会导致错误。
无效的单表继承类型:fakevalue不是其子类 MyTable的
由于我可能拥有无限数量的子类,因此我希望能够完全隔离子类来测试我的基类。由于Rails正在检查子类,这似乎是不可能的。
有办法吗?
答案 0 :(得分:1)
因此,在与同事讨论之后,我们得出了以下解决方案。
在spec文件中,我添加了一个空的虚拟类,并从我的基类继承。然后我可以使用这个虚拟类进行测试。由于虚拟类是空的,因此测试的唯一逻辑是基类。然后,我可以添加/删除子类,而不必担心会破坏基类测试。