Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Arrays rspec数组应该包括哪些内容?另一个数组_Arrays_Testing_Rspec - Fatal编程技术网

Arrays rspec数组应该包括哪些内容?另一个数组

Arrays rspec数组应该包括哪些内容?另一个数组,arrays,testing,rspec,Arrays,Testing,Rspec,我试图测试一个数组是否包含另一个(rspec2.11.0) 这就是结果 rspec规范/测试规范 ..F 故障: 1) 1 3 7 失败/错误:它{应该包括(test_arr)} 预期[1,3,7]包括[1,3] #/规格/测试。规格:7:in‘分块(2级)in’ 在0.00125秒内完成 3例,1例失败 失败的示例: rspec./spec/test.spec:7#1 3 7 include rspec方法no接受数组参数,有更好的方法避免“eval”吗 只需使用(*)运算符,它将元

我试图测试一个数组是否包含另一个(rspec2.11.0)

这就是结果 rspec规范/测试规范 ..F

故障:
1) 1 3 7 
失败/错误:它{应该包括(test_arr)}
预期[1,3,7]包括[1,3]
#/规格/测试。规格:7:in‘分块(2级)in’
在0.00125秒内完成
3例,1例失败
失败的示例:
rspec./spec/test.spec:7#1 3 7
include rspec方法no接受数组参数,有更好的方法避免“eval”吗

只需使用(*)运算符,它将元素数组展开为可传递给方法的参数列表:

test_arr = [1, 3]

describe [1, 3, 7] do
  it { should include(*test_arr) }
end

如果您想断言子集数组的顺序,您需要做的不仅仅是
应该包含(..)
,因为RSpec的
包含
匹配器只断言数组中的任何位置都显示每个元素,而不是所有参数都按顺序显示

最后,我使用
each_cons
验证子数组是否按顺序存在,如下所示:

描述[1,3,5,7]做什么
它“按顺序包括[3,5]”
主题。每个主题(2)应包括([3,5])
结束
它“不包括[3,1]”do
主题。每个主题(2)。不应包括([3,1])
结束
结束

OMG!这是令人兴奋的…认真的,这在规范中真的非常有用,我不知道#包括支持的参数列表。非常感谢。老实说,这太棒了。让我检查一下我到底需要什么。
Failures:

  1) 1 3 7 
     Failure/Error: it { should include(test_arr) }
       expected [1, 3, 7] to include [1, 3]
     # ./spec/test.spec:7:in `block (2 levels) in <top (required)>'

Finished in 0.00125 seconds
3 examples, 1 failure

Failed examples:

rspec ./spec/test.spec:7 # 1 3 7 
test_arr = [1, 3]

describe [1, 3, 7] do
  it { should include(*test_arr) }
end