【发布时间】:2021-08-28 01:04:19
【问题描述】:
MCVE(最小、完整、可验证示例)以重现与我相同的问题:
在 rspec 文件位置:
RSpec.describe 'Predicate Enumerable Exercises' do
describe 'coffee drink exercise' do
it 'returns true when espresso is included' do
drink_list = ["milk", "juice", "espresso"]
expect(coffee_drink?(drink_list)).to be true
end
end
describe 'valid scores exercise' do
it 'returns true when only one score is a 10' do
score_list = { easy_to_read: 10, uses_best_practices: 8, clever: 7 }
perfect_score = 10
expect(valid_scores?(score_list, perfect_score)).to be true
end
end
end
在实际函数文件中:
def coffee_drink?(drink_list)
drink_list.include?("coffee" || "espresso")
end
def valid_scores?(score_list, perfect_score)
score_list.one?{|score| score == perfect_score}
end
我很难弄清楚我的代码有什么问题,因为我依赖于内置方法(一个?,包括?)所以我不确定实际的问题是什么
我创建了 2 个方法,coffee_drink?(drink_list) 和 valid_scores?(score_list, perfect_score)。
coffee_drink? 获取一个数组,然后仅当它包含单词 coffee 或 espresso 时才返回 true。
我使用以下内容返回预期:drink_list.include?("coffee" || "espresso")
但是当我的列表中有espresso 而没有coffee 时,控制台会返回:
包含浓缩咖啡时返回 true (FAILED - 1)
drink_list 是 ["milk", "juice", "espresso"]
对于valid_scores?,它获取一个数组和整数,并在数组中只有一个值等于该整数时返回true。但我希望score_list.one?{|score| score == perfect_score} 在只有一个值为真时返回真。相反,我得到:
当只有一个分数是 10 (FAILED - 2) 时返回 true
数组在哪里
score_list = { easy_to_read: 10, uses_best_practices: 8, clever: 7 }
整数是
perfect_score = 10
如果有帮助,我正在使用 ruby 2.7.2p137(2020-10-01 修订版 5445e04352)[x86_64-linux]。
【问题讨论】:
标签: ruby