Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为这个方法编写rspec Ruby测试?_Ruby_Methods_Rspec_Undefined_Nomethoderror - Fatal编程技术网

如何为这个方法编写rspec Ruby测试?

如何为这个方法编写rspec Ruby测试?,ruby,methods,rspec,undefined,nomethoderror,Ruby,Methods,Rspec,Undefined,Nomethoderror,我认为首先必须定义实例变量@turn,以及它的递增方式。此外,我建议将游戏#开始#更改为#初始化,下面的测试假设这一点。 然后可以检查输出到标准输出的内容 RSpec.description游戏做什么 描述“#玩家#掉头”做什么 上下文“当轮到偶数时”do 让(:game){game.new} 它“告诉你该轮到玩家2了”怎么办 期望做 游戏玩家 end.to output(“轮到tum了”)。to\u stdout 结束 结束 结束 结束 我认为首先必须定义实例变量@turn,以及它的递增方式。

我认为首先必须定义实例变量
@turn
,以及它的递增方式。此外,我建议将游戏#开始#更改为#初始化,下面的测试假设这一点。 然后可以检查输出到标准输出的内容

RSpec.description游戏做什么
描述“#玩家#掉头”做什么
上下文“当轮到偶数时”do
让(:game){game.new}
它“告诉你该轮到玩家2了”怎么办
期望做
游戏玩家
end.to output(“轮到tum了”)。to\u stdout
结束
结束
结束
结束

我认为首先必须定义实例变量
@turn
,以及它的递增方式。此外,我建议将游戏#开始#更改为#初始化,下面的测试假设这一点。 然后可以检查输出到标准输出的内容

RSpec.description游戏做什么
描述“#玩家#掉头”做什么
上下文“当轮到偶数时”do
让(:game){game.new}
它“告诉你该轮到玩家2了”怎么办
期望做
游戏玩家
end.to output(“轮到tum了”)。to\u stdout
结束
结束
结束
结束

请显示您尝试了什么…不过我已经解决了。谢谢。
ruby descripe Game do descripe“player_turn”do it“show player two's turn”do allow(subject)。to receive(:turn){2}expect(subject.player_turn)。to eql('this is this is tum's turn')end结束
请展示您的尝试……我已经解决了它。谢谢。
ruby descripe Game do descripe“player_turn”do it“show player two's turn”do allow(subject)。to receive(:turn){2}expect(subject.player_turn)。to eql('this is tum's turn')end结束
非常感谢。我把问题贴出来,忘了,但我解决了。非常感谢。我把问题贴出来忘了,但我解决了。
class Game
  def start
    @player1 = Player.new("don")
    @player2 = Player.new("tum")
  end

  def player_turn
    if @turn.even? 
      puts "this is #{@player2.name}'s turn"
    else
      puts "this is #{@player1.name}'s turn"
    end
  end
end