【发布时间】:2018-01-18 22:41:29
【问题描述】:
我正在学习 Mocha 和 Chai,并正在尝试编写一个测试来检查页面上 H1 标记的值。我有下面的测试,它尝试通过三种方式做到这一点:
const expect = require('chai').expect;
const assert = require('chai').assert;
const request = require('request');
const chaiHttp = require('chai-http');
const app = require('../../app');
const chai = require('chai');
chai.use(require('chai-dom'));
chai.use(chaiHttp);
//first attempt
describe('Story Homepage', function(){
it('Should have an H1 of My Home Page', function(){
chai.request(app)
.get('/', function (){
expect(document.querySelector('h1')).should.have.text('My Home Page');
});
})
});
//second attempt
describe('Story Page Tests', function () {
it('Homepage H1 is My Home Page', function(done) {
chai.request(app)
.get('/', function(done){
expect(document.querySelector('h1').should.have.text('My Home Page'));
done();
})
});
});
//third attempt
describe('Story Page Tests', function () {
it('Homepage H1 is My Home Page', function(done) {
chai.request(app)
.get('/')
.end(function(err, res) {
expect(document.querySelector('h1').should.have.text('My Home Page'));
done();
});
});
});
我已尝试以此处https://github.com/nathanboktae/chai-dom#texttext 所述的方式使用 chai-dom 扩展来执行此操作。 然而: 第一个测试通过但不应该通过(页面上的 与测试断言的不一样)
第二个测试报告错误Error: Timeout of 15000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.,但我认为我在上面正确使用了done。
第三次测试报告了一个错误Uncaught ReferenceError: document is not defined,这似乎是合乎逻辑的,但我不确定如何解决它。
有没有人提供关于如何正确执行此操作的建议?
【问题讨论】:
标签: javascript express mocha.js tdd chai