Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Don';复制测试文件设置行时,不要忘记重命名测试类。这里';这是为什么_Ruby_Unit Testing_Minitest - Fatal编程技术网

Ruby Don';复制测试文件设置行时,不要忘记重命名测试类。这里';这是为什么

Ruby Don';复制测试文件设置行时,不要忘记重命名测试类。这里';这是为什么,ruby,unit-testing,minitest,Ruby,Unit Testing,Minitest,一个Ruby Minitest文件中的设置如何在另一个Minitest文件中导致六个错误 我都不知道该怎么查这个。希望你能帮忙 我正在编写单元测试(例如,在Ruby的Minitest中),我的测试通过得很好。然后,我开始在一个新文件中为一个方法编写测试,第一次运行该文件的setup方法时,出现了六个错误。事实证明,这些错误是完全不同的测试脚本中的错误。当我删除第一个测试文件时,我的所有测试都通过了!注意,我根本没有接触源文件 下面是一条示例错误消息,这是六个错误之一(它们都是“未定义的nil方法

一个Ruby Minitest文件中的设置如何在另一个Minitest文件中导致六个错误

我都不知道该怎么查这个。希望你能帮忙

我正在编写单元测试(例如,在Ruby的Minitest中),我的测试通过得很好。然后,我开始在一个新文件中为一个方法编写测试,第一次运行该文件的setup方法时,出现了六个错误。事实证明,这些错误是完全不同的测试脚本中的错误。当我删除第一个测试文件时,我的所有测试都通过了!注意,我根本没有接触源文件

下面是一条示例错误消息,这是六个错误之一(它们都是“未定义的nil方法”)

在中,我能够将问题缩小到一行,现在是:
@store=TaskStore.new('tasks.yml')
。注释掉一个测试文件中的那一行,另一个测试文件中的所有错误就会神奇地消失

我完全像WTF?为什么将yaml存储加载到一个测试文件中的实例变量中会导致另一个测试文件中的对象(通常不是
nil
)突然变成
nil

我在想也许我需要做一些
拆卸
?我从来没有这样做过,因为我从来没有明白为什么这是必要的。一个文件中的测试会影响另一个文件中的测试吗?(我是初学者。)


这给了我一个潜在的学习机会,所以我来到了这里。知道发生了什么吗?

test\u task.rb
test\u todo\u helpers.rb
都提供了
TestTask
的定义。这意味着minitest将两个文件测试视为一组测试。如果在
Test\u todo\u helpers.rb
中将
class TestTask
更改为
class TestTodoHelpers
,则所有测试都通过。

也许您无法创建同名的两个存储?在开始下一个test.Ugh之前,我会尝试删除存储及其yaml文件。你完全正确。我从
test\u task.rb
复制了测试文件的前几行,当我如您所说重命名测试类时,测试都通过了。谢谢新年快乐!
  1) Error:
TestTask#test_check_description:
NoMethodError: undefined method `check_description' for nil:NilClass
    C:/Users/user/Dropbox/_Programming/Ruby/learning_projects/todo/test/test_task.rb:41:in `test_check_description'