gpt4 book ai didi

ruby - 如何使用 RSpec 测试 STDIN

转载 作者:数据小太阳 更新时间:2023-10-29 08:01:03 25 4
gpt4 key购买 nike

好的,需要帮助进行测试。我想测试这个类(class)收到一个字母“O”并且当调用“move_computer”方法时,返回该人在 cli 上输入的任何内容。我的心理子处理器告诉我这是一个简单的分配变量的东西,以在 STDIN 上保存随机的人工输入。只是现在不明白...有人指出我正确的方向吗?

这是我的课...

class Player
def move_computer(leter)
puts "computer move"
@move = gets.chomp
return @move
end
end

我的测试看起来像...

describe "tic tac toe game" do
context "the player class" do
it "must have a computer player O" do

player = Player.new()
player.stub!(:gets) {"\n"} #FIXME - what should this be?
STDOUT.should_receive(:puts).with("computer move")
STDOUT.should_receive(:puts).with("\n") #FIXME - what should this be?
player.move_computer("O")
end
end
end

最佳答案

因为 move_computer 返回 输入,我想你的意思是:

player.move_computer("O").should == "\n"

我会这样写完整的规范:

describe Player do
describe "#move_computer" do
it "returns a line from stdin" do
subject.stub!(:gets) {"penguin banana limousine"}
STDOUT.should_receive(:puts).with("computer move")
subject.move_computer("O").should == "penguin banana limousine"
end
end
end

关于ruby - 如何使用 RSpec 测试 STDIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12222175/

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