gpt4 book ai didi

ruby-on-rails - 使用 RSpec for Redis with Rails 编写测试

转载 作者:IT王子 更新时间:2023-10-29 05:54:51 24 4
gpt4 key购买 nike

我有一个在redis中缓存数据的模型类。我第一次在模型上调用方法时,它会计算一个 JSON/哈希值并将其存储在 Redis 中。在某些情况下,我会“刷新”该数据,并在下次调用时重新计算它。

这是类似于我用来在 Redis 中存储数据的代码片段:

def cache_data
self.data_values = data_to_cache
REDIS.set(redis_key,ActiveSupport::JSON.encode(self.data_values))
REDIS.get(redis_key)
end

def data_to_cache
# generate a hash of values to return
end

我应该如何对这段代码进行单元测试?我使用 RSpec 和 capybara 。如果有帮助,我还会使用 Cucumber 和 Capabara 进行集成测试。

最佳答案

我喜欢在测试运行时让 redis 运行。 Redis,不像例如postgres,速度极快,不会显着减慢测试运行时间。

只需确保在 before(:each) block 或相应的 cucumber 钩子(Hook)中调用 REDIS.flush

您可以独立于 redis 测试 data_to_cache,但除非您可以完全信任您正在使用的 redis 驱动程序及其提供的契约,否则实际测试 cache_data 会更安全(以及相应的缓存获取方法)直播。这还允许您切换到不同的 redis 驱动程序(或不同的快速 KV 存储),而无需大规模重写您的测试。

关于ruby-on-rails - 使用 RSpec for Redis with Rails 编写测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10501461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com