1
mochaJSを使用してユニットテストコードを書くときにいくつか問題が発生しています。コードは、上記示し私はテストケースを実行すると、端末は「PLZ(1〜3)から選択:」行示したようNodeJSのユニットテストでユーザ入力を嘲笑する方法は?
//index.js
var query = require('cli-interact');// helper tools for interacting synchronously with user at command line.
module.exports = function main() {
while (true){
let choice = query.getNumber("plz choice from(1~3):");//waiting for user's input;
}
if(choice === 3){
console.log("you entered 3");
}
//...other code
}
//test_spec.js
var chai = require("chai");
var sinon = require("sinon");
var sinonChai = require("sinon-chai");
var expect = chai.expect;
chai.use(sinonChai);
var main = require("../index.js");
describe("test input ", function(){
sinon.spy(console, 'log');
it("enter 3", function(){
main();
//now the test code block here, I want to automatically input 3,but don't know how.
let result = console.log.calledWith("you entered 3")
expect(result).to.equal(true);
});
});
:そして、私の入力を待っている私が入力した後にここに私のコードです3を入力し、テストケースが合格になります。
このプロセスを自動化したいのですが、どうすればいいですか?
query.getNumber()モジュールのCLI-相互作用」からAPIであり、 [ここ](https://www.npmjs.com/package/cli-interact)にあり、ユーザーの入力を同時に受け入れます。 –
なぜそれを無限ループ内に入れたいのですか(while(true))?それはループを終了し、ユーザーの入力を求め続ける –
真実は、そこには、ユーザーの入力後に複数の学生がいると仮定して、データベースに学生の成績を追加するようにユーザーに求める複数のオプションがあります学生の成績では、主な機能に戻り、さらに成績を追加するか、プログラムを終了するかを尋ねます(3を選択します)。 –