2

我正在为我的 Rails 3 应用程序中的缓存编写 Rspec 测试。我使用 Redis 作为缓存存储。

我有一个方法会尝试从 Redis 中提取数据,如果没有找到,将使用数据库。

有没有办法测试数据库没有被访问?(所以我确信数据是从 Redis 中提取的。)

4

1 回答 1

2

如果您使用,您可以模拟模型调用以引发错误。这是一个例子:

describe 'when cached' do
  it 'should not hit the database' do
    # first request should add the object to the cache
    get '/users/1'

    # make db calls fail
    expect(User).not_to receive(:find)

    # send the request again
    get '/users/1'
  end
end
于 2013-04-21T19:52:18.423 回答