gpt4 book ai didi

ruby - 测试一个复杂的方法

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

我正在开发西洋跳棋实现,其中有许多易于测试的方法,但我不确定如何测试我的主要 #play_game 方法。我的大多数方法都可以很容易地确定输入和输出,因此也很容易测试,但这种方法是多方面的,实际上并没有容易辨别的输出。这是代码:

def play_game
puts @gui.intro

while(game_over? == false)
message = nil
@gui.render_board(@board)
@gui.move_request
player_input = gets
coordinates = UserInput.translate_move_request_to_coordinates(player_input)

message = MoveCheck.move_validator(coordinates[0], coordinates[1], coordinates[2], coordinates[3])
puts message unless (message.nil? or message == "jumping move")
if(message == nil or message == "jumping move")
@current_player = switch_player unless (message == "jumping move" and jump_available? == true)
end
end
puts @gui.display_game_ending_message
end

那么我该如何测试它(使用 RSpec)或者我不应该担心它并且真的在我的其他全面测试上?

最佳答案

play_game 真正做的就是运行游戏循环。您真正想要测试的是游戏循环内部发生的情况。最简单的方法是将游戏循环的内容分解为更容易测试的方法。

一旦您将游戏循环作为一系列方法,您就可以更轻松地单独测试它们中的每一个。

关于ruby - 测试一个复杂的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8330001/

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