javascript - 使用自定义匹配器的 jasmine 2.0 测试失败 : undefined is not a function

标签 javascript jasmine

我的源文件中有这个函数:

function gimmeANumber(){
    var x = 4;
    return x;
}

还有一个借自 this tutorial 的规范

describe('Hello world', function() {

    beforeEach(function() {
        this.addMatchers({
            toBeDivisibleByTwo: function() {
                return (this.actual % 2) === 0;
            }
        });
    });

    it('is divisible by 2', function() {
        expect(gimmeANumber()).toBeDivisibleByTwo();
    });

});

这是错误:

类型错误:未定义不是函数 在对象。 (文件:///home/n/foo/jasmine/jasmine-2.0.0/dist/spec/HelloWorldSpec.js ...) 谢谢。

最佳答案

自 1.3 起,用于添加自定义匹配器的 API 已发生变化。 您可以看到更改here .

Here现在是这样的:

function gimmeANumber() {
    var x = 4;
    return x;
}

describe('Hello world', function () {

    beforeEach(function () {
        jasmine.addMatchers({
            toBeDivisibleByTwo: function () {
                return {
                    compare: function (actual, expected) {
                        return {
                            pass: (actual % 2) === 0
                        };
                    }
                };
            }
        });
    });

    it('is divisible by 2', function () {
        expect(gimmeANumber()).toBeDivisibleByTwo();
        expect(5).not.toBeDivisibleByTwo();
    });

});

关于javascript - 使用自定义匹配器的 jasmine 2.0 测试失败 : undefined is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23986665/

相关文章:

javascript - 在 Javascript 中动态创建音频元素

javascript - 使用同一组件中的方法在 Vue 组件中查找特定数据时遇到问题

javascript - 将类添加到父 div 如果它有一个跨度作为 child

javascript - 是否可以用 jasmine 模拟网络故障来模拟 ajax 请求?

angularjs - 如何对 $mdSidenav 服务进行单元测试?

javascript - 将无法进行 json 字符串化的对象存储在 localStorage 中?

javascript - 哪些字节的视频数据是指当前播放位置

javascript - 如何在运行测试之前让 Karma 的自动监视功能暂停?

java - 如何引用 Jasmine 测试根文件夹上方的文件?

javascript - Jasmine 与 karma : Ajax not working