0
以下工作:agent.auth描述塊
describe('My App', function() {
describe('when logged in', function() {
it('should allow registered user to make a thing', function(done) {
agent.post('/make-a-thing')
.auth('testusername', 'validuserpass')
.send({thingName:'mythingname'})
.expect(201)
.end(function(err, res) {
if (err) return done(err);
res.body.should.have.property('thingUrl').and.to.match(/thing\/[0-9a-f]+$/);
done();
});
});
});
});
現在,如果我想越來越多的測試增加了塊「登錄時」,我不知道想每次重複.auth('testusername', 'validuserpass')
行。我應該把認證代碼放在beforeEach,因爲那是beforeEach的原因。
所以,我想這一點:
describe("My App", function() {
describe('when logged out', function() {
it('should disallow anonymous user from doing things', function(done) {
agent.post('/do-things')
.send({thingName:'mythingname'})
.expect(403)
.end(function(err, res) {
if (err) return done(err);
done();
});
});
});
describe('when invalid user', function() {
beforeEach(function(done) {
agent.auth('invalidusername', 'invaliduserpass');
done();
});
it('should disallow unrecognized user from doing things', function(done) {
agent.post('/do-things')
.send({thingName:'mythingname'})
.expect(403)
.end(function(err, res) {
if (err) return done(err);
done();
});
});
})
describe('when logged in', function() {
beforeEach(function(done) {
agent.auth('testusername', 'validuserpass');
done();
});
it('should allow registered user to make a thing', function(done) {
agent.post('/make-a-thing')
.send({thingName:'mythingname'})
.expect(201)
.end(function(err, res) {
if (err) return done(err);
res.body.should.have.property('thingUrl').and.to.match(/thing\/[0-9a-f]+$/);
done();
});
});
it('should require name attribute to create a thing', function(done) {
agent.post('/make-a-thing')
.send({notaname:'notathingname'})
.expect(409)
.expect('Content-Type', /json/)
.end(function(err, res) {
if (err) return done(err);
done();
});
});
});
});
發生的事情是沒有定義agent.auth
。我認爲auth
方法是在auth.post
的結果中定義的。
有沒有辦法做到這一點?