2013-02-28 31 views
9

Örneğin, genellikle bir testten önce kullanıcı girişi gibi çalıştırılması gereken bir adım var.CasperJS modülleri nasıl yazılır?

CasperJS için yeniden kullanılabilir kod parçaları nasıl yazılır? CasperJS genişletmek için belgeleri sadece bir dosya için yazılmıştır ...

Teşekkürler!

+1

Bu [sorun] 'un (https://github.com/n1k0/casperjs/issues/348) yaşadığınız sorunu oldukça iyi bir şekilde ilişkilendirdiğine inanıyorum. – hexid

+0

casperjs, nodejs ekosisteminin bir parçası değildir. – shabunc

cevap

8

İşte basit bir yaklaşım. Eğer coffeescript ile aşina değilseniz, js2coffee'de JS'ye dönüştürün. Komut satırından çalışan

test/Casper/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/Casper/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

Neredeyse aynı şeyi yaptık. Ayrıca ihracat olmadan bunu yapmak mümkündür ve doğrudan casper örneğine yöntemleri ekleyin: 'casper.login'. – ValeriiVasin