2017-12-19 12 views
-2

文字を数えるためにrspecファイルを作成したい。私はこのコードを使用します。RSpecで文字数を計算する

private 

def generate_transaction_id(length = 25) 
    chars = [*('a'..'z'), *(0..9)] 
    (0..length).map {chars.sample}.join 
end 

RSpecの:

it "checks transaction id length" do 
     trx_id = request.send("generate_transaction_id") 
     puts trx_id 
     expect(trx_id).to have(25).characters 
    end 

出力:

.lt3s5gxr0zkm02d0gf2f0vce1o 
Fsome output 
. 

Failures: 

    1) with no argument checks transaction id length 
    Failure/Error: expect(trx_id).to have(25).characters 

    NoMethodError: 
     undefined method `have' for #<RSpec::ExampleGroups::Anonymous::WithNoArgument:0x007fde1f0fb590> 

あなたは、私はこの問題を解決する方法を知っていますか?

答えて

1

rspecはなぜ人間の言語を理解しているのかわかりません。

expect(trx_id.length).to eq(25) 
+0

この種のdsl IS(?)は一部の場所で使用できますが、私は配列/コレクションに個人的に使用しています: ''(3).elements'または ''(project).to(5).documents'を持つことを期待してください。それが今利用できない場合、彼らはある時点でそれをカットしていなければなりません。それとも、アドオンDSLモジュールを含めるだけの問題でしょうか? ¯\\ _(ツ)_ /¯ –

関連する問題