2016-01-20 47 views
1

我遇到了一些问题,弄清楚如何在Ember中通过测试。测试在余烬中失败

事情是,我试图在我的项目中使用NProgress,但我无法通过我的测试。

我正在关注this example为它创建一个混合,除了测试以外,一切工作都正常。

这是我创建的混合:

import Ember from 'ember'; 
NProgress.configure({ showSpinner: true }); 

export default Ember.Mixin.create({ 
    actions: { 
    loading() { 
     if(!Ember.$('.nprogress-busy').length) { 
      if(Ember.$('#content').length) { 
       Ember.$('#content').removeClass('fadeIn'); 
       Ember.$('#content').addClass('animated fadeOut'); 
      } 
      if(Ember.$('#page-content-wrapper').length) { 
       Ember.$('#page-content-wrapper').removeClass('fadeIn'); 
       Ember.$('#page-content-wrapper').addClass('animated fadeOut'); 
      } 
      NProgress.start(); 
     } 
     this.router.one('didTransition', function() { 
      window.scrollTo(0, 0); 
      setTimeout(function(){ 
      if(Ember.$('#content').length) { 
       Ember.$('#content').removeClass('fadeOut'); 
       Ember.$('#content').addClass('animated fadeIn'); 
      } 
      if(Ember.$('#page-content-wrapper').length) { 
       Ember.$('#page-content-wrapper').removeClass('fadeOut'); 
       Ember.$('#page-content-wrapper').addClass('animated fadeIn'); 
      } 
      }, 1000); 
      NProgress.done(); 
      return true; 
     }); 
    }, 
     error() { 
     NProgress.done(); 
     return true; 
     } 
    } 
}); 

而这正是失败:

not ok 80 PhantomJS 2.0 - JSHint - mixins: mixins/loading-indicator.js should pass jshint 
--- 
    actual: > 
     false 
    expected: > 
     true 
    message: > 
     mixins/loading-indicator.js should pass jshint. 
     mixins/loading-indicator.js: line 2, col 1, 'NProgress' is not defined. 
     mixins/loading-indicator.js: line 16, col 11, 'NProgress' is not defined. 
     mixins/loading-indicator.js: line 30, col 11, 'NProgress' is not defined. 
     mixins/loading-indicator.js: line 35, col 9, 'NProgress' is not defined. 

     4 errors 
    Log: | 
... 

正如你所看到的,我可以用NProgress不会对应用程序的任何问题,但我没有在测试失败的任何地方声明NProgress。

有没有人有关于如何通过它的想法?

我知道在ember中有类似的组件,但我选择使用NProgress,因为我可以设置何时启动它,以及何时需要它。我不想使用进度条,我需要为动画设置时间。

在此先感谢!

回答

2

有两种方式,使这个JSHint检查通:

我已经链接到相应的Ember CLI和JSHint文档以获取更多信息。

+0

感谢提示@locks,不幸的是我已经转移到另一种解决方案,但下次发生这种事情时我会记住它! –