2015-11-12 51 views
-1

需要構建一個rspec framework,我們不想編寫功能文件和相應的步驟定義來運行我們的測試。沒有黃瓜和步驟定義的Rspec框架

到目前爲止,這是我試過這是測試運行,如果它的工作,我會寫更多。

my_example_spec.rb

require 'rspec' 

describe 'Mybehaviour' do 

    def testMethod 
    visit(LoginPage).test 
    end 
end 

login_page.rb

class LoginPage 
include PageObject 

page_url("#{FigNewton.base_url}/login") 

    element :username, "input[id='username']" 
    element :password, "input[id='password']" 
    element :submit, "input[id='submit']" 

    def test 
    puts "excellent" 
    end 

end 

我使用的RubyMine當我右鍵單擊我的示例文件並運行它,它給了我

Run options: include {:full_description=>/Mybehaviour/} 

All examples were filtered out 

0 examples, 0 failures, 0 passed 

Finished in 0.000315 seconds 

Process finished with exit code 0 
Empty test suite. 

所以我改變了它太:

require 'rspec' 

describe 'Mybehaviour' do 

    it 'test Method' do 
    visit(LoginPage).test 
    true.should == false 
    end 
end 

它給了我:

Run options: include {:full_description=>/Mybehaviour/} 

NameError: uninitialized constant LoginPage 
./my_example_spec.rb:6:in `block (2 levels) in <top (required)>' 
-e:1:in `load' 
-e:1:in `<main>' 

1 example, 1 failure, 0 passed 

Finished in 0.001273 seconds 

Process finished with exit code 1 
  1. 有什麼區別,我用def時,當我用it
  2. 據我所知,我需要初始化LoginPage,但是在哪裏以及爲什麼它將其稱爲constant LoginPage而不是class LoginPage

PS:新建RSPEC

回答

0

我的猜測是,你需要需要login_page.rb在spec_helper.rb(如果有的話),或在my_example_spec.rb頂部

的測試不知道LoginPage類,所以當它在第6行訪問(LoginPage).test時它認爲LoginPage是一個未定義的常量。它不知道你已經將它定義爲一個類。

嘗試增加:

require 'login_page' 

無論是在你的spec_helper.rb或後my_example_spec.rb

需要 'rspec的'