gpt4 book ai didi

ruby - RSpec 嵌套 if 函数

转载 作者:行者123 更新时间:2023-12-04 11:02:08 25 4
gpt4 key购买 nike

我是 RSpec 的新手,我正在尝试进行测试,但我不知道如何处理嵌套的 if。我希望你能帮助我。谢谢!

array1 = %w[a b]
array2 = %w[aa b c]
@a = if (array1 & array2).any?
if !array2.include? 'c'
'yes'
else
'no'
end
else
'neither'
end
puts @a

我想使用 RSpec 为我的代码开发一个基本测试。我的代码运行良好,我只是不知道如何编写测试。

最佳答案

您不需要显式测试嵌套的 if 表达式。当您编写测试时,您是在测试整个代码。在这种情况下,您有 3 条可能的代码路径,在这种情况下,您将编写 3 个测试。

一项测试将满足 (array1 & array2).any? && !array2.include?('c') ,第二个测试将满足 (array1 & array2).any? && array2.include?('c') ,第三个测试将满足 (array1 & array2).empty?
所以,例如...


def my_function(array1, array2)
if (array1 & array2).any?
if !array2.include? 'c'
'yes'
else
'no'
end
else
'neither'
end
end

RSpec.describe 'MyFunction' do
context 'array has c' do
it 'should return no' do #
expect { my_function(['b'], ['b']) }.to eq("no")
end
end
end

关于ruby - RSpec 嵌套 if 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58736836/

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