我刚刚参加了一个中型Cordova项目,并希望在代码实践中添加单元测试 - 例如但不一定是Jasmine。
我们正在使用以下“单身功能”模式来模拟EC5中的类javascript:
var myInstance = function( dependency1, dependency2 ){
var _prop1,_prop2;
function init( p1, p2 ) {
_prop1 = p1;
_prop2 = p2;
}
function foo() {
return p1 + " foo " + p2;
}
function nicePublicMethod() {
return "Public: " + foo();
}
return {
init: init,
nicePublicMethod: nicePublicMethod
}
}
依赖关系全部按以下方式逐个加载到index.html文件中:
<script src="js/app/dependency1.js"></script>
<script src="js/app/dependency2.js"></script>
<script src="js/app/myInstance.js"></script>
我想要实现的目标:
将“公共测试”Jasmine函数添加到myInstance“singleton”中:
var myInstance = function( dependency1, dependency2 ){
var _prop1,_prop2;
function init( p1, p2 ) {
_prop1 = p1;
_prop2 = p2;
}
function foo() {
return p1 + " foo " + p2;
}
function nicePublicMethod() {
return "Public: " + foo();
}
/** TEST METHOD EXAMPLE **
function test() {
describe( "it tests myInstance", function() {
it( "foo runs fine", function() {
expect(true).toBe(true);
});
} );
}
return {
init: init,
nicePublicMethod: nicePublicMethod,
test: test // PUBLIC TEST METHOD OF THE COMPONENT
}
}
这是我提出的唯一方法,以确保我们可以对私有方法进行单元测试。
是否有可能以某种方式将Jasmine或任何其他JavaScript测试库/工具与这些测试架构集成?
PS:我知道这确实是一个普遍的(也是太具体的)问题,但来自这个社区的知识渊博的人的评论值得收到几个-1。