Я предполагаю, что userApi
является классом, поэтому, чтобы заглушить его, мы должны сделать, как показано ниже:
sandbox.stub(userApi.prototype, "getUser").withArgs(User)...
, мы должны добавить prototype
, чтобы заглушить метод класса.
Я также нахожу что-то, чтобы исправить в вашем тесте, потому что вы не рассматриваете logInCommand._getUser
как асинхронный вызов.Итак, вот код после обновления.
it("getUser function", async function() { // remove `done` and let's use async/await here
let User = new UserInfo("email", "email", "station");
sandbox
.stub(userApi.prototype, "getUser") // add prototype
.withArgs(User)
.resolves({ // in new sinon, they have `resolves` method
users: [
{
id: 1
}
]
});
sandbox.stub(logger, "info");
let result = await logInCommand._getUser(client, "email", "stationid"); // add await because this method is async
// remove done()
});
Надеюсь, это поможет