相关疑难解决方法(0)

如何在Jasmine JS中重用beforeEach/afterEach?

使用JasmineJS编写测试时,我有许多测试具有类似的beforeEach/afterEach代码.

有没有办法使用JasmineJS测试套件实现继承模型?

我可以将所有测试组合describe在一起,但在这种情况下,我将以包含所有测试的单个HUGE JS文件结束.

我想分开每个页面的测试.

这是一个例子:

describe('Services Page', function() {

    beforeEach(function() {
        login_as_admin()
    })

    beforeEach(function() {
        browser().navigateTo('/services')
    })

    if('Some test for services page', function() {})

    afterEach(function() {
        logout()
    })

})


describe('Administrators Page', function() {

    beforeEach(function() {
        login_as_admin()
    })

    beforeEach(function() {
        browser().navigateTo('/administrators')
    })

    if('Some test for administrators page', function() {})

    afterEach(function() {
        logout()
    })

})
Run Code Online (Sandbox Code Playgroud)

javascript testing dry jasmine

38
推荐指数
3
解决办法
4万
查看次数

使用Jasmine重用测试代码的好方法是什么?

我正在使用Jasmine BDD Javascript库并且非常享受它.我有测试代码,我想重用(例如,测试基类的多个实现或在稍微不同的上下文中运行相同的测试),我不知道如何使用Jasmine.我知道我可以将代码从jasmine函数移到可重用的类中,但我喜欢代码读取散布Jasmine函数的方式(描述,它),我不想将规范与测试代码分开,除非我不得不.有没有人使用Jasmine遇到这个问题,你是如何处理它的?

javascript bdd jasmine

21
推荐指数
3
解决办法
1万
查看次数

量角器页面对象继承

鉴于我正在构建我的angularjs量角器e2e测试套件,利用页面对象模式.

我尽可能合理地将页面对象代码分隔在不同的文件中.

  1. 什么是启用页面对象继承的好方法?javascript经典继承?基于Object.create()的继承?其他?

  2. 我应该在页面对象中保持期望吗?或者通过将他们转移到断言库来支持Martin Fowler optinion?在这种情况下,这个javascript-nodejs技术堆栈中究竟会是什么样子?

我在这里准备了一个现场jsfiddle游乐场,所以你可以试试你的改进.

或者只是在答案中粘贴代码,为了清楚起见,我会粘贴下面的jsfiddle内容:

loginPage.js

"use strict";

// A Page Object is a Singleton, so no need to constructors or classic js inheritance,
// please tell me if I'm wrong or what's the utility of creating a (new LoginPage())
// every time a spec need to use this login page.
var loginPage = {
    // Page Object Elements
    userElm: $('.user.loginPage'),

    // Page Object Assertions
    // Martin Fowler [doesn't favor](http://martinfowler.com/bliki/PageObject.html) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js angularjs angularjs-e2e protractor

19
推荐指数
2
解决办法
6579
查看次数