我正在尝试构建我的Rspec测试测试来测试我正在构建的ruby应用程序.我知道我应该先建立,但稍后进行测试.代码确实100%工作我只是在让Rspec查看我的代码时遇到问题.
github上的完整代码:https: //github.com/EsdrasEtrenne/tictactoe
到目前为止,我使用rspec运行的唯一文件是ruby/spec/game_spec.rb
game_spec.rb文件如下所示:
require_relative "../tictactoe"
Rspec.describe Tasks do
before(:each)do
@game = Tictactoe::Game.new
end
it "has a working method called play" do
expect{@game.play}.to output("WELCOME! To the unbeatable Tic-tac-toe").to_stdout
end
endRun Code Online (Sandbox Code Playgroud)
它需要tictactoe作为亲戚:
require "./components/tasks.rb"
require "./components/board.rb"
require "./components/player.rb"
require "./components/player_types/computer.rb"
require "./components/player_types/human.rb"
module Tictactoe
class Game
attr_reader :board, :player, :opponent, :tasks
def initialize
@board = Board.new
@tasks = Tasks.new
end
def play
@tasks.greet_players
@player, @opponent = @tasks.get_order
current_player, current_opponent = @player, @opponent
@tasks.print_board(@board)
until @board.game_is_over || @board.tie
@tasks.tell_turn(current_player)
current_player.move(@board)
@tasks.print_board(@board)
if @board.game_is_over || @board.tie
@tasks.game_over(@board)
if @tasks.end_options
game = Tictactoe::Game.new
game.play
end
else
current_player, current_opponent = current_opponent, current_player
end
end
end
end
end
game = Tictactoe::Game.new
game.playRun Code Online (Sandbox Code Playgroud)
然后当我运行rspec game_spec.rb时出现此错误:
An error occurred while loading ./game_spec.rb.
Failure/Error: return gem_original_require(path)
LoadError:
cannot load such file -- ./components/tasks.rb
# /Users/Esdras/Desktop/first_vagrant_box/coding_challenges/ruby/tictactoe.rb:1:in `<top (required)>'
# ./game_spec.rb:1:in `require_relative'
# ./game_spec.rb:1:in `<top (required)>'
No examples found.
Finished in 0.00028 seconds (files took 0.08732 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examplesRun Code Online (Sandbox Code Playgroud)
游戏定期100%运作.我正在寻找第一次测试通过,其余的应该是非常直接的.
该require路径根据解决你当你执行的代码是DIR.它实际上比这更复杂,并且存在可配置的"加载路径"的整个概念.请参阅默认情况下"需要"查找的路径是什么?
从这一行An error occurred while loading ./game_spec.rb.我搞清楚你跑cd spec那么rspec ./game_spec.rb或者类似的东西.我认为如果您在项目目录的根目录并运行,您的代码将会起作用rspec spec/game_spec.rb.
的好处require_relative在require是路径可以解决无论你在哪里调用从脚本.我想如果你require_relative在tictactoe.rb中使用它会起作用.
| 归档时间: |
|
| 查看次数: |
6361 次 |
| 最近记录: |