gpt4 book ai didi

javascript - Jasmine 未定义

转载 作者:行者123 更新时间:2023-12-02 23:36:35 24 4
gpt4 key购买 nike

我是 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
});

});

我完全明白这会在代码中失败,但我假设使用这些匹配,但它不会。我只是错误地使用了这些,还是无法编写规范来检查某些内容是否是 undefined

最佳答案

问题在于

  expect(obj).toBeUndefined();

在调用 Jasmine 之前就失败了。引用 undefined variable 是错误的(在新浏览器中或至少在“严格”模式下)。

尝试此设置:

it('should not be defined using .tobeUnefined()', function() {
var obj = {};
expect(obj.not_defined).toBeUndefined();
});

在该代码中,有一个变量“obj”,其值为空对象。在 JavaScript 中引用一个对象不存在的属性是可以的,并且因为这样的引用会导致 undefined ,所以测试将会通过。另一种方法是:

it('should not be defined using .tobeUnefined()', function() {
var no_value;

expect(no_value).toBeUndefined();
});

关于javascript - Jasmine 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676064/

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