- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Odoo 中的 Javascript 单元测试
访问/web/tests 页面可以看到当前所有包含测试模块的单元测试列表。
Odoo 自定义单元测试方法如下:
openerp 文件中添加对 js 文件的引用:
(非官方文档中将 js 文件写到test中,而是引用 view 文件,在 view 文件中添加对 js 的引用,8.0 以后有效)
template id=assets_backendname=qweb_testinherit_id=web.qunit_suite
xpath expr=//headposition=inside
script type=text/javascriptsrc=/px_qweb/static/test/demo.js/script
/xpath
/template
创建 js 文件,写单元测试
单元测试以 openerp.testing 为命名空间,测试写在 section 函数中。
openerp.testing.section(my.test,function(test){ test(my first test,function(){
ok(false,this test has run);
});
});
断言
ok(state[,messsage]):检查 state 是否为真strictEqual(actual,expected[,message]):严格测试相等notStrictEqual(actual,expected[,message]):严格测试是否不等
deepEqual(actual,expected[,message]):对于对象和数组类型,确保其每个元素的键值都相等notDeepEqual(actual,expected[,message]):与 deepEqual 相反throws(block[,expected][,messsage]):block 抛出异常,验证抛出异常是否与预期(expected)一致。
equal(actual,expected[,message]):测试是否相等notEqual(actual,expected[,message]):与 equal 相反
例子:
自定义 data.js 文件:
(function(){ openerp.px_qweb={ value_true:true,
SomeType:openerp.web.Class.extend({ init:function(value){
this.value=value;
}
})
};
}());
单元测试:
openerp.testing.section(PX QWeb,function(test){ test(PX Test,function(instance){
ok(instance.px_qweb.value_true,should have a true value); var type_instance=new instance.px_qweb.SomeType(50);
strictEqual(type_instance.value,50,should have provided value.);
});
});
文档评论(0)