在控制器中分配单例变量(仅用于单元测试)是标准行为吗



"myEvent"是在点击网格中的任何div时触发的,

使用观看此事件

$scope.$on('myEvent', function (e, info) {
    var someString = someStringHelper.convertToString(info);
    $scope.justToTest = someString;
    // Do stuff.
});

看起来有人正在使用$scope.justToTest,如下所示:

it('should handle myEvent events', function () {
    childScope.$apply(function () {
        childScope.$emit('myEvent', new generateStringKey("a", b, c));
    });
    expect(scope.justToTest).toBe('a-BEE-C');
    expect(scope.stringsList).toEqual(scope.otherStringsList[a-BEE-c]);
});

不,我不会说在作用域上具有不需要的属性是典型的(或者是一个好主意)。

对于这个特定的例子,测试激发事件是可以的,但测试应该测试事件对所使用的"真实"属性的影响。

因此,测试的总体结构看起来是正确的。但该期望应该仅适用于scope.stringsList。应取出justForTest

最新更新