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 jasmine测试用于监视点击不起作用_Angularjs_Unit Testing_Dom_Coffeescript_Jasmine - Fatal编程技术网

Angularjs jasmine测试用于监视点击不起作用

Angularjs jasmine测试用于监视点击不起作用,angularjs,unit-testing,dom,coffeescript,jasmine,Angularjs,Unit Testing,Dom,Coffeescript,Jasmine,我一直在尝试用angular为下面的代码编写测试 $scope.openFileWindow = -> $timeout -> $('#profile-pic-input').trigger 'click' 到目前为止,我已经提供了以下代码 @timeout = $injector.get '$timeout' @windowSpy = spyOnEvent('#profile-pic-input', 'click') it 'should open file w

我一直在尝试用angular为下面的代码编写测试

$scope.openFileWindow = ->
  $timeout ->
    $('#profile-pic-input').trigger 'click'
到目前为止,我已经提供了以下代码

 @timeout = $injector.get '$timeout'
 @windowSpy = spyOnEvent('#profile-pic-input', 'click')
 it 'should open file window', ->
    @scope.openFileWindow()
    @timeout.flush()
    expect(@windowSpy).toHaveBeenTriggered()
我面临的问题是@WindowSpy根本不起作用;在没有@windowSpy和@windowSpy的情况下运行代码expect@windowSpy.toHaveBeenTriggered通过测试

更新: 我已经将我的代码修改为下面的代码,测试通过了,但这是一种有效的方法吗

$('body').append('<div id="profile-pic-input"></div>')
it 'should open file window', ->
@scope.openFileWindow()
@timeout.flush()
@expect(@scope.openFileWindow).toBeTruthy()

我不应该期望你被解雇expect@windowSpy.toHaveBeenTriggered?是否在控制器或其他地方定义了$scope.openFileWindow?试图理解上下文。是的,它是在controller@ShuheiKagawa我也用expectwindowSpy测试了它,但它不起作用。im正在更新当单元测试控制器时,通常不存在DOM。控制器函数$'profile-pic-input'中的以下选择器将找不到任何内容。与传递给spyOnEvent的选择器相同。