[英]JsTestDriver, name of the test function
测试功能的名称是否有任何限制?
当我将以下内容编写为testA()
和testB()
,它们都将被实现。
AjaxCreateTest = TestCase("AjaxCreateTest");
AjaxCreateTest.prototype.testA = function(){};
AjaxCreateTest.prototype.testb = function(){};
但是,如果我将名称从“testB”更改为“AjaxCreateT”,则只会执行testA()
。 太奇怪了。 有人可以帮忙吗?
JsTestDriver只执行以前缀“test”开头的方法。 这是一个命名约定,使您能够在未作为测试执行的同一对象上编写辅助方法。
还有两个保留的方法名称setUp
和tearDown
,它们将分别在每个测试之前和之后执行。
您甚至可以在测试名称中使用空格,这使您的测试具有良好的可读性,例如:
TestCase("AjaxCreateTest", {
setUp : function() {
this.subject = new MyAjaxCode();
this.stubXHR();
},
tearDown : function() {
this.restoreXHR();
},
stubXHR : function() {
// stub global objects to intercept Ajax calls
},
restoreXHR : function() {
// restore global state
},
"test should say hi" : function() {
assertEquals("Hi", this.subject.sayHi());
}
}
在上面的例子中,只有一个测试,其余的是辅助方法。
我可以推荐Sinon.JS来帮助你存根Ajax调用(参见“假XHR”)以及更多示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.