rspec 问题据信与 gets.chomp 通话有关
rspec issue believed to be with gets.chomp call
当 运行ning:
时,我遇到了问题或对 rspec 错误感到困惑
rspec -fd game_spec
(以上只是一条长错误信息的开头)
当我 运行 它没有 -fd 时,它可以工作......但它看起来很愚蠢......出了点问题。我在使用 gets.chomp 时开始收到错误消息,但我查看了使用它的类似示例。 'the_word' 是否必须在初始化时设置? gets.chomp 可以吗?我感谢任何帮助。以下是游戏文件及其目前的 rspec。我根本不想改变太多。我只想得到我目前所做的工作并继续前进。谢谢!
原因是gets
读取自ARGV
(参数变量),比如你给rpsec
的-fd
标志。
您可以很容易地重现这种情况:
> ruby -e "puts gets.chomp" ASD
-e:1:in `gets': No such file or directory @ rb_sysopen - ASD (Errno::ENOENT)
from -e:1:in `gets'
from -e:1:in `<main>'
您可以通过在调用 gets.
之前清除 ARGV
来防止这种情况发生
> ruby -e "ARGV.clear; puts gets.chomp" ASD
asd # <-- I then type this
asd # <-- and this is printed
你不能只说 ARGV = []
因为它是一个常量,但是调用 clear
是可以的,因为它没有重新定义变量。
简而言之,把这个放在gets.chomp
之前的某个地方:
ARGV.clear
这是关于该主题的另一个问题:Ruby readline fails if process started with arguments
我知道这个问题已经得到解答。我也是 Ruby 的新手,但是教程是这样使用的。它使用了$stdin.gets.chomp
因此您的代码将是 game.the_word = $stdin.gets.chomp
根据我的研究,gets.chomp
将首先检查 ARGV 中的内容,如果未找到任何内容,则使用标准输入。这样做将直接读取用户输入。 :)
当 运行ning:
时,我遇到了问题或对 rspec 错误感到困惑rspec -fd game_spec
(以上只是一条长错误信息的开头)
当我 运行 它没有 -fd 时,它可以工作......但它看起来很愚蠢......出了点问题。我在使用 gets.chomp 时开始收到错误消息,但我查看了使用它的类似示例。 'the_word' 是否必须在初始化时设置? gets.chomp 可以吗?我感谢任何帮助。以下是游戏文件及其目前的 rspec。我根本不想改变太多。我只想得到我目前所做的工作并继续前进。谢谢!
原因是gets
读取自ARGV
(参数变量),比如你给rpsec
的-fd
标志。
您可以很容易地重现这种情况:
> ruby -e "puts gets.chomp" ASD
-e:1:in `gets': No such file or directory @ rb_sysopen - ASD (Errno::ENOENT)
from -e:1:in `gets'
from -e:1:in `<main>'
您可以通过在调用 gets.
ARGV
来防止这种情况发生
> ruby -e "ARGV.clear; puts gets.chomp" ASD
asd # <-- I then type this
asd # <-- and this is printed
你不能只说 ARGV = []
因为它是一个常量,但是调用 clear
是可以的,因为它没有重新定义变量。
简而言之,把这个放在gets.chomp
之前的某个地方:
ARGV.clear
这是关于该主题的另一个问题:Ruby readline fails if process started with arguments
我知道这个问题已经得到解答。我也是 Ruby 的新手,但是教程是这样使用的。它使用了$stdin.gets.chomp
因此您的代码将是 game.the_word = $stdin.gets.chomp
根据我的研究,gets.chomp
将首先检查 ARGV 中的内容,如果未找到任何内容,则使用标准输入。这样做将直接读取用户输入。 :)