-1

该模块有三个页面,当单击下一个或上一个按钮时,它们会一一更改。我可以通过两次编写 click 方法来单击它。如何使其在一项测试中发挥作用?我是否必须使用循环或任何其他方式。请推荐 JavaScript,我的箭头环境对我来说是新的。我们正在使用nodejs。

其次,他们正在为这个模块添加一个自动旋转功能,为此我还必须准备自动化测试。请建议如何自动测试此功能。

http://att.yahoo.com/ (查看 Attspotlight 模块)

为方便起见,这是我为该模块编写的当前代码:

YUI.add("cdt-att-spotlight-func-tests", function(Y) {

  'use strict';

  var Utils = Y.Media.Cdt.FuncTestUtils;

  Y.Media.Cdt.FuncTestUtils.DebugMode=true;

  var selectors = {

          module: "#mediabcarouselmixedlpca_2",
          /*title: ".heading",
                  numberSlot: ".yui-carousel-pagination",
          clickButtons: ".ymg-nav-buttons",*/
          nextButton: ".yui-carousel-next",
          prevButton: ".yui-carousel-prev",
                  visibleImage:".img-wrap",
                  /*linkText_bestdeals: ".txt",
                  linkText_CheckGoPhone:".txt",
                  linkText_greatdeals:".txt",*/
                  linkText: ".txt"

  };

  var suite = new Y.Test.Suite("Cdt Att Spotlight Func Test Suite");

  suite.add(new Y.Test.Case({

    setUp: function() {

         // Find our module...
        this.module = Y.one(selectors.module);

     // Define our components...
        this.components = {
            nextButton: this.module.one(selectors.nextButton),
                prevButton: this.module.one(selectors.prevButton),
                visibleImage: Utils.track.selector(this.module, selectors.visibleImage),
                linkText: this.module.one(selectors.linkText)

        }; 


        this.module.scrollIntoView();

    },

     "Verify MediaCdtAttSpotlight module loaded": function() {

         this.module.should.be.visibleToUser();

       },



        "Verify Image showed in the module": function() {

      var visibleImage = this.components.visibleImage.current();

      this.wait(function() {

        visibleImage.should.be.visibleToUser();

      }, 2000);

    },



       "Verify the Link Text is visible": function() {

        this.components.linkText.should.be.visibleToUser();

      },


    "Verify clicking next button to scroll left": function() {

      this.components.nextButton.simulate("click");

      this.wait(function() {

      }, 3000);

    },


    "Verify clicking next button1 to scroll left": function() {

      this.components.nextButton.simulate("click");

      this.wait(function() {

      }, 3000);

    },


     "Verify clicking prev button to scroll right": function() {

      this.components.prevButton.simulate("click");

      this.wait(function() {

      }, 2000);
    },


     "Verify clicking prev button1 to scroll right": function() {

      this.components.prevButton.simulate("click");

      this.wait(function() {

      }, 2000);
    }



  }));

  Y.Test.Runner.add(suite);

}, "0.1", { requires: ["test", "node", "node-event-simulate", "chai-yui", "cdt-func-test-utils"]});
4

1 回答 1

0

注意:这个问题一般针对 nodejs 模块测试,而不是 Arrow。我不想删除它,因为作者正在我的 anwser 的评论中寻找对某些事情的澄清。如果有人要求,我很乐意删除此回答者。

我会推荐 mocha http://visionmedia.github.io/mocha/。这是一个非常受欢迎的优秀测试框架。当与模块should结合使用时,您可以编写简单的测试,如下所示。

require('should');

describe('Array', function(){
  describe('#indexOf()', function(done){
    it('should return -1 when the value is not present', function(){
      [1,2,3].indexOf(5).should.equal(-1);
      [1,2,3].indexOf(0).should.equal(-1);
      done();
    })
  })
})

然后,您可以设置一个名为 travis ci https://travis-ci.org/的免费 Web 服务,以便在您推送到 github 时运行您的测试。我正在为我的模块使用这些服务,我很高兴。

于 2013-09-14T00:40:32.433 回答