Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS试验之间的交叉污染_Angularjs_Jasmine_Karma Jasmine - Fatal编程技术网

AngularJS试验之间的交叉污染

AngularJS试验之间的交叉污染,angularjs,jasmine,karma-jasmine,Angularjs,Jasmine,Karma Jasmine,我们在AngularJS应用程序中使用了一个配置文件。因为我们在构建阶段需要配置信息,所以我们将其定义为一个值。配置文件包含有关在何处查找多个评估之一的资产的信息,因此我们有一个带有updateAssessment函数的configurationService,该函数在配置文件中查找已定义的各种评估,然后将特定评估中的属性复制到另一个值中,评估设置 在某些情况下,我们希望从XML文件中读取一些附加设置,但当这些设置已经作为评估配置的一部分提供时,我们希望忽略它们。我有一个测试,检查这是做了,它运

我们在AngularJS应用程序中使用了一个配置文件。因为我们在构建阶段需要配置信息,所以我们将其定义为一个值。配置文件包含有关在何处查找多个评估之一的资产的信息,因此我们有一个带有updateAssessment函数的configurationService,该函数在配置文件中查找已定义的各种评估,然后将特定评估中的属性复制到另一个值中,评估设置

在某些情况下,我们希望从XML文件中读取一些附加设置,但当这些设置已经作为评估配置的一部分提供时,我们希望忽略它们。我有一个测试,检查这是做了,它运行和通过

但是,对项目配置值进行处理,然后在该测试中调用configurationService.updateAssessment1会导致不同文件中的41个其他测试失败。我的理解是,Angular应该被拆掉,并在每次测试中恢复,当然不应该交叉污染不同的文件。价值观是否有不同之处导致这种情况发生


请注意,项目本身似乎可以正常加载和运行。我没有提供代码示例,因为这将是一个相当多的代码,我不认为这会有启发性。Angular 1.3.

我想有些代码不会有什么坏处。你的情况中有什么问题并不太明显。那么,每次测试你都重新启动angular吗?我想这就是问题所在,因为configurationService似乎保留了不同规范之间的配置值。我的理解是,测试框架karma/jasmine应该为每个测试重新启动。问题的核心是,我真的很讨厌人们投票结束一个问题,因为他们个人不理解这个问题。我希望吸引那些了解karma和jasmine如何在测试之间引导angularjs的人。IMO任何测试框架都不应允许任何交叉污染,即使是在特定测试之间,更不用说其他文件中的测试了。我明白并不是每个人都理解测试框架,但仅仅因为你不理解,并不意味着没有人会发现这个问题明确而具体。交叉污染可能来自那里。