Если вы звоните res.render()
с использованием EJS, вызывается не ejs.render()
, а ejs.renderFile()
( источник ).
Следуя пути кода для этого метода, он никогда не вызывает ejs.render()
.
Шпионаж на ejs.renderFile()
также невозможен, поскольку Sinon работает (шпионаж на ejs.renderFile
заменяет экспортированную ссылку на метод renderFile
, но ejs
использует внутренний ссылка).
Однако вы можете шпионить за ejs.__express
- функцией, которую Express будет вызывать для res.render()
:
const spy = sinon.spy(ejs, "__express");
РЕДАКТИРОВАТЬ : Теперь я понимаю, что вы хотите убедиться, что res.render()
вызывается с правильными аргументами, поэтому было бы более разумно следить за этим методом:
const { response } = require('express');
...
const spy = sinon.spy(response, 'render');