tjj*_*ava 15 javascript testing mocking
我正在尝试在测试期间存根/模拟/覆盖函数调用,这会将日志写入数据库.
function logit(msg) {
writeMessageToDb(msg);
}
function tryingToTestThisFunction(){
var error = processSomething();
if (error) {
logit(error);
}
}
Run Code Online (Sandbox Code Playgroud)
我想logit()在测试期间简单地打印到控制台...并且isTesting()在logit()函数内部执行" "if/else块不是一个选项.
如果不包括一些额外的模拟框架,这是否可行.我目前正在使用JsTestDriver单元测试,并且没有机会评估任何模拟框架.目前理想的解决方案是在没有其他框架的情况下处理这个问题.
我使用Jasmine和Sinon.js(使用Coffeescript),这是我如何将confirm()方法存根,例如,返回true.
beforeEach ->
@confirmStub = sinon.stub(window, 'confirm')
@confirmStub.returns(true)
afterEach ->
@confirmStub.restore()
Run Code Online (Sandbox Code Playgroud)
在 javascript 中最新的定义是流行的。
所以只需在第一个定义之后重新定义 logit 方法即可。
function logit(msg) {
console.log(msg);
}
Run Code Online (Sandbox Code Playgroud)
示例: http: //www.jsfiddle.net/gaby/UeeQZ/
| 归档时间: |
|
| 查看次数: |
20600 次 |
| 最近记录: |