有没有更好的方法在mocha中编写测试语句?

时间:2016-06-09 19:28:13

标签: node.js mocha

在下面的代码中,我试图确保在用户点击链接后呈现某个页面。我不确定这是否是制作此断言的正确方法,或者是否有更好的方法来编写它,可能还有另一个内部声明。这项测试能否以任何方式得到改善?

describe('User visits the main page and clicks the Contact link', function()    {
  const browser = new Browser();
  it('should render ok', function(done) {
    browser.visit( "http://localhost:3000",
      function() {
        browser.clickLink("Contact", function() {
          browser.assert.text('title', 'Contact');
          done();
        });
      });
  });
});

1 个答案:

答案 0 :(得分:2)

  1. 在BDD风格中,describe()应该描述要测试的事物。您可能希望将每个页面的每个断言分开来访问。
  2. browser.visit不应在it声明中。将其放入beforeEach挂钩。
  3. describe('the main page', function()    {
      const browser = new Browser();
    
      beforeEach(function(done) {
        browser.visit("http://localhost:3000", done);
      });
    
      it('should render ok when user clicks the Contact link', function(done) {
        browser.clickLink("Contact", function() {
          browser.assert.text('title', 'Contact');
          done();
        });
      });
    
      it('another test', function(done) {
        // goes here
      });
    });
    

    您可以添加另一个嵌套的describe()套件来描述页面元素,例如"联系人链接,"虽然it()无法嵌套。