gpt4 book ai didi

javascript - Jasmine 测试 : Object doesn't support property or method

转载 作者:行者123 更新时间:2023-11-28 19:44:42 25 4
gpt4 key购买 nike

我刚刚发现了 Jasmine 框架,我正在尝试它,尽管我应该尝试编写一个自定义匹配器,因为它听起来非常有用。我这样做了:

describe('Hello World', function() {
beforeEach(function() {
this.addMatchers({
toBeDivisbleByTwo: function() {
var result = {
pass: (this.actual % 2) === 0
};
if(result.pass) {
result.message = 'this is divisible by two';
} else {
result.message = 'this is not divisible by two';
}

return result;
}
});
});
});

describe('Hello world', function() {
it('divisible by two', function() {
expect(evenNumberGenerator()).toBeDivisbleByTwo();
});
});

但是当我运行该页面时,我在 Internet Explorer 中收到此错误:

类型错误:对象不支持属性或方法“toBeDivisbleByTwo”

这是由于加载顺序还是其他原因造成的?

最佳答案

beforeEach 函数仅适用于编写它们的 describe 内以及任何嵌套 describe 中的 it 函数> 在那一个里面。要解决您的问题,您可以将第二个 describe 嵌套在第一个 describe 中,或者完全删除第二个 describe 并将您的 放在第一个 describe 中。由您决定如何组织测试,但在这种情况下,我建议使用第二个选项,因为第一个 describe 中没有 it 函数。此外,describeit 的 Jasmine 语法旨在读起来像简单的英语。所以你可以有类似的东西......

describe('Even number generator', function() {
beforeEach(function() {
//Your matcher
});

it('should return a number that is divisible by two', function() {
expect(evenNumberGenerator()).toBeDivisbleByTwo();
});
});

这有助于组织和理解您的测试。

关于javascript - Jasmine 测试 : Object doesn't support property or method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24507337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com