【发布时间】:2014-09-15 17:32:11
【问题描述】:
我在当前项目中使用 STI,并希望能够单独测试基类。不幸的是,当我尝试创建基类的实例时,插入type 列的假值会导致错误。
无效的单表继承类型:fakevalue 不是 我的表
由于我可能拥有无限数量的子类,因此我希望能够在完全独立于子类的情况下测试我的基类。由于 Rails 正在检查子类,这似乎是不可能的。
有办法吗?
【问题讨论】:
标签: ruby-on-rails-4 rspec fabrication-gem
我在当前项目中使用 STI,并希望能够单独测试基类。不幸的是,当我尝试创建基类的实例时,插入type 列的假值会导致错误。
无效的单表继承类型:fakevalue 不是 我的表
由于我可能拥有无限数量的子类,因此我希望能够在完全独立于子类的情况下测试我的基类。由于 Rails 正在检查子类,这似乎是不可能的。
有办法吗?
【问题讨论】:
标签: ruby-on-rails-4 rspec fabrication-gem
所以在与同事讨论后,我们得出了以下解决方案。
在规范文件中,我添加了一个空的虚拟类并从我的基类继承。然后我可以使用这个虚拟类进行测试。由于虚拟类是空的,唯一被测试的逻辑是基类。然后我可以添加/删除子类,而不必担心破坏基类测试。
【讨论】: