RSpec嵌套if函数

我是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为我的代码开发一个基本测试。我的代码运行完美,我只是不知道如何编写测试。

wc031546 回答:RSpec嵌套if函数

您不需要显式测试嵌套的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
本文链接:https://www.f2er.com/3149597.html

大家都在问