3
A
回答
5
安裝摩卡如果你還沒有:
npm install -g mocha
shouldpass.js:
process.stderr.write('omg')
shouldfail.js:
process.stdout.write('not omg on stderr')
test.js:
var exec = require('child_process').exec
, assert = require('assert')
describe('run tests', function(){
it('should pass', function(done) {
exec('node ./shouldpass.js', function(err, stdout, stderr) {
assert.equal(stderr, 'omg')
done()
})
})
it('should fail', function(done) {
exec('node ./shouldfail.js', function(err, stdout, stderr) {
assert.equal(stderr, 'omg')
done()
})
})
})
運行:
mocha test.js
0
您可以臨時覆蓋process.stdout.write
,緩衝輸入以及使用console.error
打印輸出(console.log
將無法正常工作時, process.stdout.write
被覆蓋),例如
describe('process.stdout',() => {
let processStdoutWrite,
processStdoutWriteBuffer,
overwriteProcessStdoutWrite,
resetProcessStdoudWrite,
getProcessStdoutBuffer;
/**
* @var {function} Reference to the original process.stdout.write function.
*/
processStdoutWrite = process.stdout.write;
/**
* @returns {undefined}
*/
overwriteProcessStdoutWrite =() => {
processStdoutWriteBuffer = '';
process.stdout.write = (text) => {
processStdoutWriteBuffer += text;
};
};
/**
* @returns {string}
*/
getProcessStdoutBuffer =() => {
return processStdoutWriteBuffer;
};
/**
* @returns {undefined}
*/
resetProcessStdoudWrite =() => {
process.stdout.write = processStdoutWrite;
};
beforeEach(() => {
overwriteProcessStdoutWrite();
});
afterEach(() => {
resetProcessStdoudWrite();
});
describe('.write()',() => {
it('prints "foo"',() => {
process.stdout.write('foo');
process.stdout.write('bar');
console.error(getProcessStdoutBuffer());
});
});
});
相關問題
- 1. XML聲明輸出
- 2. 如何在SQL聲明輸出2008
- 3. 如果聲明和輸入輸出
- 4. 聲明輸出文件
- 5. 在LINQ聲明中輸出變量
- 6. VHDL輸出聲明與狀態機
- 7. libxml2的輸出空間聲明
- 8. 聲明枚舉輸出的函數
- 9. C# - 聲明輸出爲字符串
- 10. 聲明Junit輸出不起作用
- 11. XmlWriter.WriteStartDocument()不向文件輸出聲明
- 12. 聲明對象和輸出的值
- 13. 爲sp_executesql聲明輸出參數
- 14. 聲明回報無效的輸出
- 15. 如何讓LinqToXSD正確輸出名稱空間前綴聲明?
- 16. 我們如何聲明局部變量並輸出其值?
- 17. 蟒蛇 - 如何輸出設置我聲明的方式/順序
- 18. 如何強制XDocument在聲明行中輸出「UTF-8」?
- 19. 如何在VHDL中聲明多個零的輸出
- 20. 聲明輸入流
- 21. 如何使用聲明的ExecuteScalar聲明
- 22. 如果....否則如果....聲明沒有給出任何輸出在javascript
- 23. 如何把`拋出IOException`的聲明
- 24. 如何拋出異常聲明?
- 25. 如何聲明作出反應PropTypes XOR
- 26. 如何編寫C程序來聲明字符串的輸入和輸出?
- 27. 聲明做出與
- 28. 找出C聲明
- 29. 如何聲明SQLCA.SQLERRD?
- 30. 如何聲明hashmap?