工厂女孩没有正确破坏物体

Dan*_*nny 0 ruby rspec ruby-on-rails factory-bot

我正在创建一个具有几个has_many关联的对象.关于tob构建对象的所有内容都可以正常工作,但是当我尝试测试其中一个子节点或父节点的删除时,它并没有反映在测试中.

例如:

 base_article = Factory(:base_article, :articles => [Factory(:article)])
 p base_article.articles.size
 base_article.articles.first.destroy
 p base_article.articles.size
 base_article.destroyed?.should == true
Run Code Online (Sandbox Code Playgroud)

打印出:

1

1

在没有更多子项时删除基础的文章中,我正在测试回调.为什么文章关联的大小没有减少一个?

谢谢!

Dou*_*rer 5

您需要重新加载文章集合,因为Rails的数据库缓存是陈旧的:

base_article = Factory(:base_article, :articles => [Factory(:article)])
base_article.articles.size # => 1

base_article.articles.first.destroy
base_article.articles.size # => 1
base_article.articles.reload.size # => 0

base_article.destroyed?.should == true 
Run Code Online (Sandbox Code Playgroud)