-1

我有以下步骤定义:

When /^I upload it$/ do

end

这与文件上传有关。capybara 中的访问方法,据我所知,这是一个仅限 GET 的方法.. 进行 POST 请求的唯一方法是通过实现:

visit "/files/new"
within('#upload-form') do
  attach_file('File', @files_path+'/file.txt')
  click_button('Upload')
end

这似乎不是一个非常强大的测试,因为它依赖于文件/新模板中的 HTML 和表单标签。

有没有更好的方法来处理这个问题,或者这样做可以吗?我想到了这样的事情:

发布 files_new_path { 文件:=> 'a_file_on_the_system.txt' }

但是黄瓜测试又是集成测试..那么在这个级别编写测试的“官方”或最佳方式是什么?

4

1 回答 1

1

水豚代码模仿人类行为。您不能指望人类“发布”,而只能“访问”、“click_button”等。

您提到的语法更适合控制器测试,但不适合与 Capybara 的集成测试。

在我看来,集成测试的最佳风格是像人一样思考和行动,而不是像机器一样思考和行动。

于 2013-02-18T18:25:09.710 回答