2013-03-05 5 views
1

FuzzBert를 사용하려고하는데 임의 생성기 작동을 할 수 없습니다.Ruby, FuzzBert, Proc을 String으로 변환 할 수 없습니다. (TypeError)

이 예는 official repository에서 온다 :

require 'fuzzbert' 

fuzz "Web App" do 
    deploy do |data| 
    #send JSON data via HTTP 
    end 

    data "template" do 
    t = FuzzBert::Template.new <<-EOS 
     { user: { id: ${id}, name: "${name}" } } 
    EOS 
    t.set(:id) { FuzzBert::Generators.cycle(1..10000) } 
    t.set(:name) { FuzzBert::Generators.random } 
    t.generator 
    end 
end 

나는이 오류가있어 (myfile.rbfuzzbert가)를 실행하면 :

fuzzbert-1.0.1/lib/fuzzbert/template.rb:17:in `block (2 levels) in to_data': can't  convert Proc into String (TypeError) 

내가 놀리려는을 시도했습니다 통역사와 같은 오류가 있습니다.

> t = FuzzBert::Template.new '{ user: { name: "${name}" } }' 
> t.set(:name) { FuzzBert::Generators.random } 
> t.to_data 
TypeError: can't convert Proc into String 
from /home/you/.rbenv/versions/1.9.3-p327-perf/lib/ruby/gems/1.9.1/gems/fuzzbert-1.0.1/lib/fuzzbert/template.rb:17:in `block (2 levels) in to_data' 

어떻게 해결할 수 있습니까?

답변

1

불행히도, 이것은 단순히 버그였습니다. 그것은 고쳐졌고 업데이트 된 예제로 새로운 버전 1.0.3을 발표했습니다. 위의 예는 다음과 같이 작성됩니다 :

require 'fuzzbert' 

fuzz "Web App" do 
    deploy do |data| 
    #send JSON data via HTTP 
    end 

    data "template" do 
    t = FuzzBert::Template.new <<-EOS 
     { user: { id: ${id}, name: "${name}" } } 
    EOS 
    t.set(:id, FuzzBert::Generators.cycle(1..10000)) 
    t.set(:name, FuzzBert::Generators.random) 
    t.generator 
    end 
end 
관련 문제