使用Fabricator隔离测试STI基类

时间:2014-09-15 17:32:11

标签: ruby-on-rails-4 rspec fabrication-gem

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

  

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

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

有办法吗?

1 个答案:

答案 0 :(得分:1)

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

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

相关问题