Я пытаюсь протестировать функцию, которая выполняет внешний вызов, используя sinon, но я не могу понять, как я могу заглушить / заглушить функцию внутри нее, которая пытается сделать внешний вызов.
Edit Я должен отметить, что оба (externalCall определены в другом файле) являются файлами .sol, которые содержат код Solidity для смарт-контракта и скомпилированы трюфелем перед запуском теста.
Iнадеюсь, один из вас может дать мне некоторое представление об этом, взяв в качестве примера следующую функцию:
File1.sol
function Foo (uint _num) external pure returns(bool {
uint externalResult = externalCall(_num);
if(externalResult == 15) {
return true;
}
return false;
}
File2.sol
function externalCall(uint _num) internal returns(uint) {
return _num * 2;
}
ЧтоЯ хотел бы заглушить / издеваться, это функция externalCall.Я хотел бы, чтобы он возвращал (например) 14 каждый раз, когда он вызывается.Я также хочу убедиться, что он называется.
Я искал, но не смог ничего найти.Я мог бы упустить из виду вещи, так как все, что у меня есть, это немного опыта в Java (студент).Но все, что у меня есть, это:
it('Should give the right boolean based on the input to the external call.',
async () => {
const testingExService = await ExService.new() // the object to test
});