Как написать собственные модули CasperJS?


Например, у меня есть шаг, который часто нужно выполнить, например, войти в систему пользователя перед некоторым тестом.

Как написать многоразовые куски кода для CasperJS? Их документация для расширения CasperJS написана только для одного файла...

Спасибо!

1 9

1 ответ:

Вот простой подход. Если вы не знакомы с coffeescript, преобразуйте его в JS в js2coffee.

Тесты / Каспер / тест.классная страница.кофе

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()

Тесты / Каспер / тест.авторизоваться.кофе

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