【发布时间】:2018-11-10 11:59:54
【问题描述】:
应该如何编写代码,以便测试可以在此处访问函数执行的属性:
_instance.addProducts(_product).products
测试
describe(`ONE product added`, () => {
const _product = {
name: 'product1',
price: 1.50,
quantity: 1
};
let _instance
let _cart
beforeEach(() => {
_instance = window[MODULE_NAME]();
_cart = _instance.addProducts(_product);
});
test(`cart's products`, () => {
expect(_cart.products).toEqual([_product]);
});
})
代码
(function() {
var MODULE_NAME = 'shoppingcartModel',
_Cart = {
products: [],
total: {
beforeVAT: 0,
afterVAT: 0,
VAT: 0
}
};
window[MODULE_NAME] = function() {
return {
addProducts: function(newOrExistingProducts) {
return _Cart.products.push(newOrExistingProducts);
}
};
};
})()
测试写得很完美,不能修改。那是一种什么样的巫术? :)
我确实尝试将 addProducts 重构为变量并在其上附加 products 属性,但这不是方式...
【问题讨论】:
标签: javascript ecmascript-6 jestjs