gpt4 book ai didi

ruby-on-rails - RSpec stub 不包含多个嵌套的Describe block

转载 作者:行者123 更新时间:2023-12-03 10:07:10 28 4
gpt4 key购买 nike

我有一个结构如下的测试套件:

describe ... do
[list of dates].each do
describe
before(:all) do
base_date = ...
end
describe ... do
[list of times].each do
describe ... do
before(:all) do
base_time = base_date + ...
DateTime.stub!(:now).and_return(base_time)
end
describe ... do
<test using records within date-time range based on base_time>
end
describe ... do
<another test using records within date-time range based on base_time>
end
end
end
end
end
end
end

第一个测试的DateTime(now)== base_time,但是第二个测试的DateTime(now)==我计算机的日期时间,表示 stub 不再有效。将 stub!调用移到每个 describe循环中可以解决此问题,但是我想了解为什么它不能按书面形式工作。

最佳答案

原因可能在其他地方, stub 可以与多个嵌套的描述块一起很好地工作。也许:all vs:each是问题所在:before(:all)在执行所有describe块之前执行一次,而before(:each)则在执行describe块之前每次执行。

或者也许与 stub DateTime有关,您是否尝试过

DateTime.any_instance.stub(:now).and_return(base_time)

关于ruby-on-rails - RSpec stub 不包含多个嵌套的Describe block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8421732/

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