如何声明该图像已与Capybara一起上传?

假设我有一个表单,用户可以创建一个附有图像的post。 我想确保附加的图像显示在下一页:

visit url fill_in the_form click_on 'Create' assert_selector '.post' post = Post.first img = page.find '.post .image' assert_equal post.file.thumb.url, URI(img[:src]).path 

但我被告知要避免在系统测试中断言数据库对象。 那我该怎么办?

只要在后端没有“复杂”文件重命名发生,您在填充表单时就已经知道上传的文件名:

 fill_in the_form 

因此,您可以声明该页面包含具有此名称的图像(可能使用xpath )。

如果有简单的文件重命名(例如用连字符替换空格),那么你可以(理想情况下)只选择一个不会改变的文件名,或者在你的测试中重现重命名。