Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用自定义匹配器的jasmine 2.0测试失败:未定义不是函数_Javascript_Jasmine - Fatal编程技术网

Javascript 使用自定义匹配器的jasmine 2.0测试失败:未定义不是函数

Javascript 使用自定义匹配器的jasmine 2.0测试失败:未定义不是函数,javascript,jasmine,Javascript,Jasmine,我的源文件中有此函数: function gimmeANumber(){ var x = 4; return x; } 还有一个借用自 这就是错误: TypeError:undefined不是函数 反对。(file:///home/n/foo/jasmine/jasmine-2.0.0/dist/spec/HelloWorldSpec.js...) 谢谢。自1.3版以来,用于添加自定义匹配器的API已更改。 你可以看到变化 现在它是如何工作的: function gimmeAN

我的源文件中有此函数:

function gimmeANumber(){
    var x = 4;
    return x;
}
还有一个借用自

这就是错误:

TypeError:undefined不是函数 反对。(file:///home/n/foo/jasmine/jasmine-2.0.0/dist/spec/HelloWorldSpec.js...)
谢谢。

自1.3版以来,用于添加自定义匹配器的API已更改。 你可以看到变化

现在它是如何工作的:

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

});

将“消息”属性添加到返回obj以自定义消息。例如返回{pass:typeof actual==='number',message:actual+'应该是一个数字'};
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();
    });

});