如何在 mocha 中编写测试用例
How to write test case in mocha
我有这段代码,我正在尝试使用 mocha(我对它很陌生)进行测试。
function ColorMark(){
this.color = ""
var that = this;
this.create = function(color){
that.color = color;
console.log("Created a mark with " + that.color + " color");
}
}
我做的是这个
describe('ColorMark', function(){
describe('#create("red")', function(){
it('should create red mark',function(){
assert.equal(this.test.parent.ctx.color, "red");
})
})
});
错误:
AssertionError: "undefined" == "red"
that.color
return undefined
.
this
在测试环境中有什么问题?
我是否遗漏了与摩卡咖啡特别相关的内容?
您需要设置一个 beforeEach() 子句来设置测试并执行您的 ColorMark() 函数。
来自文档:
http://mochajs.org/
beforeEach(function(done){
db.clear(function(err){
if (err) return done(err);
db.save([tobi, loki, jane], done);
});
})
所以在这种情况下它可能看起来像
function ColorMark(color){
this.color = ""
var that = this;
this.create = function(color){
that.color = color;
console.log("Created a mark with " + that.color + " color");
}
}
beforeEach(function(){
ColorMark("red");
});
describe('#create("red")', function(){
it('should create red mark',function(){
assert.equal(this.test.parent.ctx.color, "red");
})
})
从您显示的代码来看,它没有实例化 ColorMark
也没有实际调用 create('red')
,您似乎认为 Mocha 做的比实际做的更多。您在 describe
的第一个参数中输入的内容主要是为了 您的 利益。这些是测试套件标题。 Mocha 将它们传递给记者,然后记者展示它们,仅此而已。
你可以这样做:
var assert = require("assert");
function ColorMark(){
this.color = "";
var that = this;
this.create = function(color){
that.color = color;
console.log("Created a mark with " + that.color + " color");
};
}
describe('ColorMark', function(){
describe('#create("red")', function(){
it('should create red mark',function(){
var cm = new ColorMark();
cm.create("red");
assert.equal(cm.color, "red");
});
});
});
我有这段代码,我正在尝试使用 mocha(我对它很陌生)进行测试。
function ColorMark(){
this.color = ""
var that = this;
this.create = function(color){
that.color = color;
console.log("Created a mark with " + that.color + " color");
}
}
我做的是这个
describe('ColorMark', function(){
describe('#create("red")', function(){
it('should create red mark',function(){
assert.equal(this.test.parent.ctx.color, "red");
})
})
});
错误:
AssertionError: "undefined" == "red"
that.color
return undefined
.
this
在测试环境中有什么问题?
我是否遗漏了与摩卡咖啡特别相关的内容?
您需要设置一个 beforeEach() 子句来设置测试并执行您的 ColorMark() 函数。
来自文档: http://mochajs.org/
beforeEach(function(done){
db.clear(function(err){
if (err) return done(err);
db.save([tobi, loki, jane], done);
});
})
所以在这种情况下它可能看起来像
function ColorMark(color){
this.color = ""
var that = this;
this.create = function(color){
that.color = color;
console.log("Created a mark with " + that.color + " color");
}
}
beforeEach(function(){
ColorMark("red");
});
describe('#create("red")', function(){
it('should create red mark',function(){
assert.equal(this.test.parent.ctx.color, "red");
})
})
从您显示的代码来看,它没有实例化 ColorMark
也没有实际调用 create('red')
,您似乎认为 Mocha 做的比实际做的更多。您在 describe
的第一个参数中输入的内容主要是为了 您的 利益。这些是测试套件标题。 Mocha 将它们传递给记者,然后记者展示它们,仅此而已。
你可以这样做:
var assert = require("assert");
function ColorMark(){
this.color = "";
var that = this;
this.create = function(color){
that.color = color;
console.log("Created a mark with " + that.color + " color");
};
}
describe('ColorMark', function(){
describe('#create("red")', function(){
it('should create red mark',function(){
var cm = new ColorMark();
cm.create("red");
assert.equal(cm.color, "red");
});
});
});