【发布时间】:2014-01-19 04:03:28
【问题描述】:
我目前有:
describe 'least number of moves from x to y' do
it 'has a populated chessboard' do
@wp='white-pawn'
@bp='black-pawn'
expect(ChessBoard.new.populate_new_board).to eq [
['white-castle','white-knight','white-bishop','white-queen','white-king','white-bishop','white-knight','white-castle'],
[@wp,@wp,@wp,@wp,@wp,@wp,@wp,@wp],
[nil,nil,nil,nil,nil,nil,nil,nil],
[nil,nil,nil,nil,nil,nil,nil,nil],
[nil,nil,nil,nil,nil,nil,nil,nil],
[nil,nil,nil,nil,nil,nil,nil,nil],
[@bp,@bp,@bp,@bp,@bp,@bp,@bp,@bp],
['black-castle','black-knight','black-bishop','black-king','black-queen','black-bishop','black-knight','black-castle']]
end
没问题。
我想改用 let!,所以我尝试了:
describe 'least number of moves from x to y' do
let!(:wp){'white-pawn'}
let!(:bp){'black-pawn'}
it 'has a populated chessboard' do
expect(ChessBoard.new.populate_new_board).to eq [
['white-castle','white-knight','white-bishop','white-queen','white-king','white-bishop','white-knight','white-castle'],
[@wp,@wp,@wp,@wp,@wp,@wp,@wp,@wp],
[nil,nil,nil,nil,nil,nil,nil,nil],
[nil,nil,nil,nil,nil,nil,nil,nil],
[nil,nil,nil,nil,nil,nil,nil,nil],
[nil,nil,nil,nil,nil,nil,nil,nil],
[@bp,@bp,@bp,@bp,@bp,@bp,@bp,@bp],
['black-castle','black-knight','black-bishop','black-king','black-queen','black-bishop','black-knight','black-castle']]
end
但它失败了,因为我现在所有的 @bp 和 @wp 值都为零。
如何解决,即为期望编写正确的 let 语法?
【问题讨论】: