1

我在弄清楚如何在 Ember 中通过测试时遇到了一些问题。

问题是,我正在尝试在我的项目中使用NProgress,但我无法通过测试。

我正在按照这个例子为它创建一个混合,除了测试之外,一切都很好。

这就是我创建的混音:

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 是因为我可以设置我希望它何时开始以及何时结束。我不想使用需要为动画设置时间的进度条。

提前致谢!

4

1 回答 1

2

有两种方法可以使这个 JSHint 检查通过:

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

于 2016-01-20T19:08:17.687 回答