由于使用Javascript,我今天遇到了一个奇怪的情况。我有一个看起来像这样的对象。
$scope.main = [{main : 1},service:true];
现在,当我尝试在茉莉花测试用例中将其等同于Objects时:
expect($scope.main).toEqual([{main : 1},service:true]);
这给我一个错误:
Unexpected Token.
奇怪的是,这是Javascript的有效对象。但是茉莉花无法接受。
有什么办法可以测试吗?
谢谢!
编辑:附加结构屏幕截图。
答案 0 :(得分:1)
更新
基于您的屏幕截图,我现在看到您正在分多个步骤创建main
对象。我将其简化为以下内容:
var main = [{main: 1}];
main.service = true;
在开发工具中,您看到main
看起来像这样:[{main: 1}, service: true]
。
但是,请不要误导。 Dev-tools向您展示了一个仅旨在提供信息的结构。您实际上无法在JavaScript的一行中创建该结构,因为该结构无效。您必须像创建一样,通过多个步骤来创建它。
这就是为什么当您尝试在一行中的测试中创建它时,出现Unexpected Token.
错误的原因。在测试中,您必须以与创建main
对象相似的方式来创建期望的对象。例如:
var expected = [{main: 1}];
expected.service = true;
expect(main).toEqual(expected);