У меня есть тест, который работает прямо сейчас, но он уродлив, и я не могу не думать, что есть лучший способ сделать это. В основном я выбираю запись из базы данных, а затем делаю вызов api, который должен влиять на эту запись. Однако единственный способ сделать тестовый проход - вытащить запись из базы данных во второй раз.rspec тестирование, что вызов api увеличивает счетчик
it "counts how many times a client has pulled its config" do
client = Endpoint.last
config_count = client.config_count
post '/api/config', node_key: client.node_key
same_client = Endpoint.find_by node_key: client.node_key
# expect(client.config_count).to eq(config_count + 1)
expect(same_client.config_count).to eq(config_count + 1)
end
Записанная строка не работает. Это исправление настолько уродливое, что заставляет меня думать, что я делаю это неправильно. Я также пробовал:
expect {post '/api/config', node_key: client.node_key}.to change {client.config_count}.by(1)
Так что же это за правильный способ проверить это?