Ruby 如何通过rspec测试

Ruby 如何通过rspec测试,ruby,rspec,tdd,Ruby,Rspec,Tdd,我正在尝试使用测试驱动开发创建游戏策划人。我在想如何通过这项特定测试时遇到了一些问题: it "should valiate secret contains four accepted uppercase characters" do @game.secret = "XXXX" secret = "RRRR" valid1 = @game.checksecret(secret) valid2 = ch

我正在尝试使用测试驱动开发创建游戏策划人。我在想如何通过这项特定测试时遇到了一些问题:

it "should valiate secret contains four accepted uppercase characters" do
            @game.secret = "XXXX"
            secret = "RRRR"
            valid1 = @game.checksecret(secret)
            valid2 = check_valid(secret)
            valid1.should == valid2 && @game.secret.should == secret && valid1.should == 0
end
这是我目前掌握的代码:

def checksecret(secret)
        secret = "RRRR"
        valid1 = secret
        valid2 = check_valid(secret)
        valid1.should == valid2 && secret.should == secret && valid1.should == 0
end 
这是我收到的错误消息

1) OXs_Game::Game#Mastermind game should valiate secret contains four accepted uppercase characters
 Failure/Error: @game.secret = secret

 NoMethodError:
   undefined method `secret=' for nil:NilClass
 # ./wad_mastermind_spec_01.rb:13:in `check_valid'
 # ./wad_mastermind_gen_01.rb:61:in `checksecret'
 # ./wad_mastermind_spec_01.rb:92:in `block (3 levels) in <module:OXs_Game>'
1)OXs_游戏::游戏#智囊团游戏应验证机密包含四个可接受的大写字符
失败/错误:@game.secret=secret
命名错误:
nil:NilClass的未定义方法“secret=”
#/wad_策划人_规范_01.rb:13:in‘check_valid’
#/wad_主谋_gen_01.rb:61:in'checksecret'
#/wad_策划人_规范_01.rb:92:in'block(3层)in'

我觉得我试图用错误的方法来解决它,但我不知道应该如何解决这个问题。

你的
@game
变量为零确保设置
@game
@tibsar我已经将
@game设置为@game=game.new(@input,@output)
@AlexChase在代码中设置
@game
的地方?@idej在规范文件中