单元测试 - toEqual Object vs Array

时间:2018-05-02 15:06:22

标签: javascript unit-testing

我知道这是一个愚蠢的问题,但我不能为我的生活找出原因。我是新手测试新手,所以请提前道歉。

我有以下测试。

describe('initialized from copy job functionality', () => {
    it('should initialize the constructor based on production selection', () => {
        spyOn(MockWizardService, 'loadViewsForWizardSteps').and.returnValue(q.resolve({
                templates
        }));
        controller.Init();
        scope.$digest();
        expect(controller.templatesToBeDisplayed).toEqual(templatesAll);
    });

这些是我的模板。

let templates = [
    'views/wizards/create_test/sortStep.html',
];
let templatesAll = [
    'views/wizards/create_test/general.html',
    templates,
    'views/wizards/create_test/summary.html'
];

templates会改变这就是为什么我以这种格式拥有它。 这是我得到的错误。

  

预期$ [1] =对象({templates:['views / wizards / create_test / sortStep.html']})等于['views / wizards / create_test / sortStep.html']。

我知道我需要改变模板在模板中的方式所有但我无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

您是否可以通过更改expect

来解决问题
expect(controller.templatesToBeDisplayed.templates).toEqual(templatesAll)

也许试着对你的问题更加明确一点。您是否注意到它返回包含数组object的{​​{1}}? 您的测试不是很明确,因为很多代码都隐藏在您的控制器中。尝试测试小功能,也许如果你向我们展示代码,我们会更有帮助。

祝你好运:)