我是新手,正在进行第一次Karma测试,并已将this post提交给$emit
测试用例。我对理解这个概念有些困难。
这是我的代码:
ctrl.toggleUserMode = function(pUserId, pUserName, userModeFlag) {
$scope.$emit('userModeToggleEvent', userModeFlag);
}
抱歉,如果我的问题看起来很愚蠢。任何人都可以解释我应该在args
方法中提供的MY_EVENT_ID
,.toHaveBeenCalledWith
。
spyOn(scope, "$emit") //run code to test expect(scope.$emit).toHaveBeenCalledWith("MY_EVENT_ID", other, possible, args);
答案 0 :(得分:0)
在您的测试中,您将设置间谍并调用正在测试的代码,然后声明您的事件是使用测试中的代码应该使用的任何参数发出的。
// Arrange
spyOn(scope, "$emit");
var pUserId = "test userId";
var pUserName= "test userName";
var userModeFlag = true;
// Act
ctrl.toggleUserMode(pUserId, pUserName, userModeFlag);
// Assert
expect(scope.$emit).toHaveBeenCalledWith("userModeToggleEvent", userModeFlag);