2013-02-28 9 views
9

たとえば、いくつかのテストの前にユーザーのログインなど、しばしば実行する必要があるステップがあります。自分のCasperJSモジュールを書くには?

CasperJSのコードの再利用可能なチャンクを書く方法は? CasperJSを拡張するためのドキュメントは1つのファイルに対してのみ書かれています...

ありがとう!

+1

この問題(https://github.com/n1k0/casperjs/issues/348)は、あなたが経験している問題とかなりよく関連していると思います。 – hexid

+0

casperjsはnodejsエコシステムの一部ではありません。 – shabunc

答えて

8

ここには簡単なアプローチがあります。 coffeescriptに慣れていない場合は、js2coffeeでJSに変換してください。コマンドラインから実行

テスト/キャスパー/ test.coolPage.coffee

loginModule = require("./test.login") 
loginModule.login("test","testPW") 

casper.test.comment "Testing cool stuff, should be logged in by now" 

casper.thenOpen casper.cli.get("url") + "/myCoolPage", -> 
    @test.assertExists '#myCoolDiv' 

casper.then() -> 
    @test.assertExists '.somethingElse' 

casper.run -> 
    @test.done() 

テスト/キャスパー/ test.login.coffee

exports.login = (username, password) -> 
    casper.test.comment "Loggin in with username \"#{username}\", password \"#{password}\"" 

    casper.start casper.cli.get("url") + "/login", -> 
    @test.assertExists "input[name=username]", "input[name=password]" 

    casper.then() -> 
    @sendKeys "input[name=username]", username 
    @sendKeys "input[name=password]", password 
    @click "input[type=submit]" 

    casper.then() -> 
    #assert you got logged in 

cd tests/casper  
casperjs test test.coolPage.coffee --url=http..my-test-url 
+1

ほとんど同じことをしました。また、エクスポートせずに、casperインスタンスに直接メソッドを追加することも可能です: 'casper.login'。 – ValeriiVasin

関連する問題