Rails 5 集成测试仅使用夹具值



我正在尝试用rails 5编写测试。我修改了一点生成的脚手架测试。但它似乎从某个地方获得夹具,并且仅使用此源运行测试。

控制器上的"create"方法接受一个带有电子邮件的用户和一个带有 url 的页面列表。

我的测试类:

require 'test_helper'
class UsersControllerTest < ActionDispatch::IntegrationTest
  test "test" do
    assert_difference('User.count', 1) do
      post users_url, params: { user: { email: 'a@a' }, pages:[{url:'a'},{url:'b'},{url:'c'}] }, as: :json
    end
    assert_response 201
  end
end
-------------------- fixtures --------------------------
 _______PAGES.YML______   __________USERS.YML__________
| one:                 | | one:                        |
|   url: one.html      | |    email: testmail@mail.com |
|                      | |                             |
| two:                 | | two:                        |
|   url: pageTwo.html  | |   email: two@mail.com       |
|______________________| |_____________________________|

调试时,在保存页面之前,值是正确的:

<Page id: nil, url: "a", user_id: 980190963, created_at: nil, updated_at: nil>

但是在测试完成之后,我的数据库是这样的:

--USERS
id        |email             |created_at          |updated_at          |
----------|------------------|--------------------|--------------------|
980190962 |testmail@mail.com |2017-03-21 17:43:50 |2017-03-21 17:43:50 |
298486374 |two@mail.com      |2017-03-21 17:43:50 |2017-03-21 17:43:50 |

--PAGES
id        |url          |contato_id |created_at          |updated_at          |
----------|-------------|-----------|--------------------|--------------------|
980190962 |one.html     |           |2017-03-21 17:43:50 |2017-03-21 17:43:50 |
298486374 |pageTwo.html |           |2017-03-21 17:43:50 |2017-03-21 17:43:50 |

为什么我的电子邮件和网址值没有被保存?也不是fk?

谢谢。

它看起来不是 rspec,但我试图回答。

Rails可以在您运行测试时清理数据库表,因此它会清理数据库中的所有数据,并创建新的夹具数据保存在数据库中。

最新更新