Я пытаюсь заглушить функции для моего набора тестов, и в настоящее время он работает не так, как ожидалось. Я новичок в использовании мокко и синона и ищу направление, как сделать эту работу:
Вот фрагмент тестируемого кода, который можно найти в файле functions / purchaseOrder.js. AccountStatus, creditStatus и productStatus являются локальными функциями в файле:
var orderHandling=function(clientAccount ,product,inventory,inventoryThreshold,creditCheckMode){
var aStautus=AccountStatus(clientAccount);
var cStatus=creditStatus(clientAccount, creditCheckMode);
var pStatus=productStatus(product,inventory,inventoryThreshold);
...more
}
и вот как я пытаюсь это проверить:
import testFunctions = require('./functions/purchaseOrder.js');
beforeEach(function() {
stub=sinon.stub(testFunctions, "AccountStatus");
stub1=sinon.stub(testFunctions, "productStatus");
stub2=sinon.stub(testFunctions, "creditStatus"); // stub 'calPoints' function
})
it('Initial Test', function() {
var clientAccount = {
age: 2,
balance: 500,
creditScore: 50
}
stub.onCall(0).returns("very good");
stub1.onCall(0).returns("available");
stub2.onCall(0).returns("good");
var creditCheckMode = 'restricted';
var product = "productname"
var inventory = [{
name: "hello",
productQuantity: 578
}]
var inventoryThreshold = 500
assert.equal(testFunctions.orderHandling(clientAccount, product, inventory, inventoryThreshold, creditCheckMode), "accepted");
});
Заранее спасибо