TypeError: Cannot read property 'have' of undefined - karma Jasmine

TypeError: Cannot read property 'have' of undefined - karma Jasmine

我尝试测试 angular 服务,这是我的代码

angular.module('testApp', []).factory('Person', function () {
    return function Person (name) {
        this.name = name;
    };
});

测试用例:

describe('Person', function () {

    var Person;
    beforeEach(module('testApp'));
    beforeEach(inject(function (_Person_) {
        Person = _Person_;
    }));

    describe('Constructor', function () {

        it('assigns a name', function () {
            expect(new Person('Ben')).to.have.property('name', 'Ben');
        });
    });
});

我收到此错误:类型错误:无法读取未定义对象的 属性 'have'。

to.have.property 是一个 Chai 断言

我没用过这个,但是 add the toHaveProperty matcher to Jasmine 有一个库。

否则你可以将它与 Jasmine 一起使用:

expect((new Person('Ben')).name).toEqual('Ben');