[英]Rspec describe NameError uninitialized constant scope
我正在獲取NameError未初始化的常量,如下所示:
Failures:
1) Direction turn right faced south rotates to west
Failure/Error: expect(Move.right(Direction::South)).to eq(Direction::West)
NameError:
uninitialized constant Move
# ./spec/unit_tests/direction_spec.rb:11:in `block (4 levels) in <top (required)>'
2) Direction turn right faced west rotates to north
Failure/Error: expect(Move.right(Direction::West)).to eq(Direction::North)
NameError:
uninitialized constant Move
# ./spec/unit_tests/direction_spec.rb:16:in `block (4 levels) in <top (required)>'
3) Direction turn right faced north rotates to east
Failure/Error: expect(Move.right(Direction::North)).to eq(Direction::East)
NameError:
uninitialized constant Move
# ./spec/unit_tests/direction_spec.rb:21:in `block (4 levels) in <top (required)>'
4) Direction turn right faced east rotates to south
Failure/Error: expect(Move.right(Direction::East)).to eq(Direction::South)
NameError:
uninitialized constant Move
# ./spec/unit_tests/direction_spec.rb:26:in `block (4 levels) in <top (required)>'
Finished in 0.02345 seconds
14 examples, 4 failures
這是我的代碼:
require_relative '../spec_helper'
require 'direction'
describe Direction do
subject(:Move) { Direction::Move.new }
describe 'turn right' do
context 'faced south' do
it 'rotates to west' do
expect(Move.right(Direction::South)).to eq(Direction::West)
end
end
context 'faced west' do
it 'rotates to north' do
expect(Move.right(Direction::West)).to eq(Direction::North)
end
end
context 'faced north' do
it 'rotates to east' do
expect(Move.right(Direction::North)).to eq(Direction::East)
end
end
context 'faced east' do
it 'rotates to south' do
expect(Move.right(Direction::East)).to eq(Direction::South)
end
end
end
end
主題不起作用的原因是什么? 我也試着let
但這也不管用
您必須使用小寫的主題名稱
subject(:move) { Direction::Move.new }
如果要將Move
解釋為方法調用,則需要添加接收器或參數列表。 即你需要使用其中之一
expect(self.Move.right(Direction::South)).to eq(Direction::West)
要么
expect(Move().right(Direction::South)).to eq(Direction::West)
否則,它將被解釋為取消引用常量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.