为什么将RSpec测试放在“模块”关键字中?

时间:2019-08-24 21:41:29

标签: ruby rspec

首先,我没有尝试测试模块。我正在单个模块中测试类。 This SO question/answer没有描述我正在查看的代码,因此很难与我的好奇心相提并论。

我一直沿过时的with this tutorial前进;但是,这是建议的资源。

我的具体问题是:

为什么规范文件中的RSpec语言放在module TicTacToe中,就像这样:

require 'some_file'

module TicTacToe
  #RSpec examples here
end

我对RSpec和编码通常还是很陌生,所以我对RSpec中编写测试的约定不熟悉。这个组织有必要吗?过时了吗?我的测试通过了,一切按预期进行。我只是想学习如何编写测试,大多数规范都以RSpec.describe Foo dodescribe Bar do

开头

1 个答案:

答案 0 :(得分:1)

我还没有在规格文件中看到 import numpy as np from sklearn.metrics import r2_score from scipy.stats import pearsonr y = np.array([ 5.2 , 1.144 , 3.3 , 5.59741373, 1.438 , 7.562 , 2.7 , 0.22706035, 2.204 , 2.396 , 4.314 , 12.51420331, 10.8 , 10.638 , 5.101 , 3.861 , 3.2 , 3.8 , 7.072 , -0.4597798 , -0.9 , 0.3 , -3.54 , -0.4 , -3. , 0.7 , 1.3 , 1.5 , 6. , 2.8 , 2. , 3.122 ]) y_hat = np.array([ 1.25131326, 2.64864629, 1.56201996, 4.26699994, 2.21499358, 0.59113701, 2.40848854, 0.14954989, 0.45800824, 2.82399621, 2.48736001, 2.78476975, 1.36378354, 3.4889863 , 2.4226333 , 2.63939523, 4.15008518, 2.61525276, 2.29859288, -1.4358969 , -3.67752652, -3.73173215, -2.67027158, 0.35012302, 3.91349371, 5.11971861, 5.96586311, 3.36520449, 0.5204047 , 1.584193 , -0.05781178, 1.75957967]) pearsonr(y, y_hat) # This gives around 0.299 r2_score(y, y_hat) # This gives -0.18478241562914666 这样使用。我怀疑这是一个非常古老的教程。 (WordPress很有帮助地显示出它是从10月25日开始的,但是忽略了提到哪一年。但是最早的评论是从2014年开始)

我建议您找到更新的教程。

module关键字在这里更合适。几年前,我与之合作的大多数规格看起来像这样:

describe

或更现代的是,rspec可以识别从路径到规范文件的类型(模型,控制器等):

RSpec.describe TicTacToe::SomeClass, type: :model do
  #RSpec examples here
end