使用 Karma Jasmine 进行单元测试 Angular 功能
Unit Testing Angular Function using Karma Jasmine
我在控制器中有这样的功能
$scope.closeMenu = function () {
$('#menu').hide();
};
如果函数 returns 一个我可以测试的值
期望($scope.value).toEqual();
我们如何使用 jasmine 测试上述功能。请帮忙谢谢
If a functions returns a value I am able to test using expect($scope.value).toEqual(); How do we test the above function using jasmine
你应该重写你的函数,让它只设置模型的一个变量。然后可以使用您在 Jasmine 中已知的方式对其进行测试。 angular 的要点之一是您不会从控制器操纵 DOM。如果您遵循这些准则,控制器将更容易测试。
此外,在您的情况下重写非常简单:
$scope.closeMenu = function () {
$scope.isOpen = false;
};
模板:
... id="menu" ng-show="isOpen" ...
如果您仍然需要测试 DOM 元素的某些特征,例如它的可见性,jasmine-jquery 可能对您有用。示例:
expect($('#menu')).toBeHidden()
我在控制器中有这样的功能
$scope.closeMenu = function () {
$('#menu').hide();
};
如果函数 returns 一个我可以测试的值 期望($scope.value).toEqual(); 我们如何使用 jasmine 测试上述功能。请帮忙谢谢
If a functions returns a value I am able to test using expect($scope.value).toEqual(); How do we test the above function using jasmine
你应该重写你的函数,让它只设置模型的一个变量。然后可以使用您在 Jasmine 中已知的方式对其进行测试。 angular 的要点之一是您不会从控制器操纵 DOM。如果您遵循这些准则,控制器将更容易测试。
此外,在您的情况下重写非常简单:
$scope.closeMenu = function () {
$scope.isOpen = false;
};
模板:
... id="menu" ng-show="isOpen" ...
如果您仍然需要测试 DOM 元素的某些特征,例如它的可见性,jasmine-jquery 可能对您有用。示例:
expect($('#menu')).toBeHidden()