小编Tom*_*Doe的帖子

Jasmine toBeUnfined

我是Jasmine的新手并假设使用.not.toBeDefined().toBeUndefined()匹配你可以检查变量是否undefined:

describe('toBeDefined', function() {

    it('should be defined', function() {
        var obj = {};
        expect(obj).toBeDefined(); // Passes
    });

    it('should not be defined using .not.tobeDefined()', function() {
        //var obj = {};
        expect(obj).not.toBeDefined(); // Fails // ReferenceError: obj is not defined
    });

    it('should not be defined using .tobeUnefined()', function() {
        //var obj = {};
        expect(obj).toBeUndefined(); // Fails // ReferenceError: obj is not defined
    });

});
Run Code Online (Sandbox Code Playgroud)

我完全知道这会在代码中失败,但我假设使用这些匹配,它不会.我只是使用这些错误,还是不可能写一个规格来检查是否有什么undefined

javascript jasmine

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

Jasmine的间谍问题已经解决了原型方法问题

我在一个方法上进行间谍活动的例子是失败,"已经调用了预期的间谍handle_click".什么时候应该通过.但是,我收到控制台日志"Foo handle_click called!",所以我知道它正在调用.

Foo.js

function Foo() {
    this.$btn = $('<a href="#">Foo</a>');
    this.$btn.on('click', this.handle_click);
};
Foo.prototype.handle_click = function(evt) {
    evt.preventDefault();
    console.log('Foo handle_click called!');
};
Run Code Online (Sandbox Code Playgroud)

Foo_spec.js:

it('should be called when trigger is clicked', function() {
    var foo = new Foo();
    spyOn( foo, 'handle_click' ).andCallThrough();
    foo.$btn.click();
    expect( foo.handle_click ).toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)

我使用的是jasmine-1.2.0,jasmin-html和jasmine-jquery,但不是jasmine-sinon; 至少我不认为它捆绑在那里.任何帮助深表感谢!

更新 以下解答.但是,我想在jQuery插件的情况下记录解决方案:

Foo.js:

function Foo() { ... }
Foo.prototype.handle_click = function(evt) { ... }

$.fn.foo = function(options) {
    return new Foo(this, options || {});
};

$.fn.foo.prototype = Foo.prototype;
Run Code Online (Sandbox Code Playgroud)

Foo_spec.js:

it('should be …
Run Code Online (Sandbox Code Playgroud)

jquery prototype jasmine jasmine-jquery

6
推荐指数
1
解决办法
3273
查看次数

僵尸的路轨 - 实验室

我很想知道教程网站"Rails for Zombies"是如何完成他们的实验室的.用户需要通过在命令行提示符(似乎是)中输入ruby代码来回答一系列实验问题,以完成每个实验.提交后确定他们是否可以进入下一个实验室问题.

通过Firebug偷看DOM,看来他们正在使用canvas标签 - 我假设这是命令行,对吧?另外,在Ruby方面,他们如何确保输入的代码是回答问题所需的代码?或者他们只是使用RSpec/Cucumber进行测试设置?

任何帮助深表感谢.:)

html5 canvas ruby-on-rails ruby-on-rails-3

4
推荐指数
2
解决办法
825
查看次数