用对象构造Mocha测试

时间:2015-02-15 17:13:37

标签: javascript node.js mocha

尝试学习一些js和mocha,并确信我做的事情从根本上是错误的。例如:

产品型号:

var Product = function (sku) {
    this.sku = sku;
};

Product.prototype.getSku = function() {
    return this.sku;
}

module.exports = {Product: Product};

和我的测试:

var productLib = require('../../model/Product.js');
var assert = require('assert')

describe("Product", function() {
    describe('#getSku()', function() {

        var product = new productLib.Product('test_sku');
        it('should have an getSku method', function() {
            assert.equal(typeof product.getSku, 'function');
        });
        it('should return the loaded sku', function() {
            assert.equal(product.getSku(), 'test_sku');
        });
    });
});

在产品模型的结构和导出方面,这是否正确?这似乎是错的,但我必须这样做,以便在测试中我能做到:

var product = new productLib.Product('test_sku');

并断言sku设置正确。

1 个答案:

答案 0 :(得分:1)

如果您正在提出要求,那么您设置模块的方式绝对没有错。我看到你唯一可以改变的可能就是你如何导出你的产品模型:

由此:

module.exports = {Product: Product};

对此:

module.exports = Product;

你会像这样使用:

var ProductModel = require('../../model/Product');
var model = new ProductModel(...);