rspec测试是否调用了方法

哈里·B。

我无法弄清楚如何编写可以运行的测试,该测试也不会在CL的脚本中运行任何内容。当@counter为9时,应该触发#tie_game?但它不起作用。@counter初始化为0,并且每当玩家在游戏板上放一个X或O时,它都会加1。我该如何测试@counter为9时调用tie_game的情况?并且当它小于9时不会吗?

def initialize(player1, player2)
    @player1 = player1
    @player2 = player2
    @rows = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

    @wins = [1, 2, 3], [4, 5, 6], [7, 8, 9], 
        [1, 4, 7], [2, 5, 8], [3, 6, 9],
        [1, 5, 9], [3, 5, 7]

    @selected_numbers = []
    @counter = 0
end

def increment_counter
    @counter += 1

    if @counter == 9
        tie_game?
    end
end

def tie_game?
    puts "The game was a tie. Nicely played #{@player1} & #{@player2}!"
    play_again  
end

我尝试过:您能解释一下为什么它不起作用吗?

describe "increment_counter" do
    context "counter equals 9" do
        it "calls tie_game?" do
            game.instance_variable_set(:@counter, 9)
            allow(game).to receive(:increment_counter)
            #expect(STDOUT).to receive(:puts).with("The game was a tie. Nicely played #{@player1} & #{@player2}!")
            expect(game).to receive(:tie_game?)
        end
    end
    context "counter is less than 9" do
        it "does not call tie_game?" do
            game.instance_variable_set(:@counter, 4)
            game.increment_counter
            expect(game).not_to receive(:tie_game?)  
        end
    end
end
贾森

RSpec Mocks为您做到这一点。

describe TicTacToe do
  let(:game) { TicTacToe.new }

  context "after fewer than 9 moves" do
    it "does not call tie_game?" do
      expect(game).not_to receive(:tie_game?)
      8.times { game.increment_counter }
    end
  end

  context "after 9 moves" do
    it "calls tie_game?" do
      expect(game).to receive(:tie_game?)
      9.times { game.increment_counter }
    end
  end
end

有关更多详细信息,请参见https://relishapp.com/rspec/rspec-mocks/v/3-5/docs/basics/expecting-messages

作为附带说明,tie_game?可能不应该在后面加上问号。tie_game?建议检查游戏是否并列。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

测试RSpec中某个输入是否调用了存根方法

来自分类Dev

测试RSpec中某个输入是否调用了存根方法

来自分类Dev

RSpec测试是否调用了函数

来自分类Dev

RSpec测试是否调用了函数

来自分类Dev

RSpec-如何测试是否调用了其他类的方法?

来自分类Dev

如何测试是否调用了特定方法

来自分类Dev

PHPUnit测试是否调用了类方法

来自分类Dev

测试是否使用Mockito调用了方法

来自分类常见问题

RSpec:如何测试方法是否被调用?

来自分类Dev

Rspec - 如何测试嵌套服务是否已正确实例化并在此实例上调用了适当的方法

来自分类Dev

测试是否在模块方法内部调用了方法

来自分类Dev

测试是否使用某些参数调用了该方法

来自分类Dev

Mockito-测试是否调用了类的方法

来自分类Dev

phpunit检查是否在测试的类上调用了方法

来自分类Dev

phpunit检查是否在测试的类上调用了方法

来自分类Dev

Mockito-测试是否调用了类的方法

来自分类Dev

Nsubstitute 测试是否调用了私有类的方法

来自分类Dev

如何使用 RSpec 测试在控制器方法中调用了一个类

来自分类Dev

如何测试是否调用了函数(单元测试角度)

来自分类Dev

测试是否调用了另一种方法

来自分类Dev

如何使用gmock测试类是否调用了基类的方法

来自分类Dev

单元测试以验证是否调用了基类方法

来自分类Dev

测试是否调用了另一种方法

来自分类Dev

AngularJS单元测试检查是否调用了没有方法的函数

来自分类Dev

您如何在javascript函数对象中测试是否调用了无效方法?

来自分类Dev

rspec: 测试一个方法是否被一个方法调用

来自分类Dev

检查是否在EasyMock上调用了方法

来自分类Dev

如何检查孩子是否调用了方法?

来自分类Dev

检查是否调用了void方法

Related 相关文章

  1. 1

    测试RSpec中某个输入是否调用了存根方法

  2. 2

    测试RSpec中某个输入是否调用了存根方法

  3. 3

    RSpec测试是否调用了函数

  4. 4

    RSpec测试是否调用了函数

  5. 5

    RSpec-如何测试是否调用了其他类的方法?

  6. 6

    如何测试是否调用了特定方法

  7. 7

    PHPUnit测试是否调用了类方法

  8. 8

    测试是否使用Mockito调用了方法

  9. 9

    RSpec:如何测试方法是否被调用?

  10. 10

    Rspec - 如何测试嵌套服务是否已正确实例化并在此实例上调用了适当的方法

  11. 11

    测试是否在模块方法内部调用了方法

  12. 12

    测试是否使用某些参数调用了该方法

  13. 13

    Mockito-测试是否调用了类的方法

  14. 14

    phpunit检查是否在测试的类上调用了方法

  15. 15

    phpunit检查是否在测试的类上调用了方法

  16. 16

    Mockito-测试是否调用了类的方法

  17. 17

    Nsubstitute 测试是否调用了私有类的方法

  18. 18

    如何使用 RSpec 测试在控制器方法中调用了一个类

  19. 19

    如何测试是否调用了函数(单元测试角度)

  20. 20

    测试是否调用了另一种方法

  21. 21

    如何使用gmock测试类是否调用了基类的方法

  22. 22

    单元测试以验证是否调用了基类方法

  23. 23

    测试是否调用了另一种方法

  24. 24

    AngularJS单元测试检查是否调用了没有方法的函数

  25. 25

    您如何在javascript函数对象中测试是否调用了无效方法?

  26. 26

    rspec: 测试一个方法是否被一个方法调用

  27. 27

    检查是否在EasyMock上调用了方法

  28. 28

    如何检查孩子是否调用了方法?

  29. 29

    检查是否调用了void方法

热门标签

归档