Estoy tratando de probar el método getAll en esta clase:
module.exports = class BookController { static async getAll() { return await Book.query() .eager('reviews'); } };El libro es un modelo de Objeción.
Cómo me gustaría probarlo es que quiero falsificar la respuesta de Book.query().eager() con mis propios datos, ya que nunca puedo verificar lo que hay en la base de datos. Para que sea una verdadera prueba unitaria, ¿debería simplemente probar que se llama al método Book.query() ? ¿O debería probar los datos devueltos ya que ese es el contrato del método getAll() ? Realmente no estoy seguro de cómo debería apagar esto.
Con Sinon > 2.x, puede llamar a .resolves() en su código auxiliar. haría algo como
var stub = sinon.stub(BookController, 'getAll'); stub.resolves({response:"ok"}); var bc = new BookController(); bc.getAll.then(function(data){ expect(data.response).to.equal("ok"); done(); },function(err){ done("should NEVER get here"); });