У меня есть такая функция (код упрощен, чтобы сделать этот код более читабельным)
import Adapter from "adapter-package";
const adapter = new Adapter();
async powerOn(): Promise<MyClass> {
const myClass = new MyClass();
await adapter.powerOn();
return myClass;
}
, как вы можете видеть, я использую await
при вызове adapter.powerOn()
.Сейчас я пишу модульные тесты для этого, используя Jest.
it("can power on the adapter", async () => {
const spy = jest.spyOn(Adapter.prototype, "powerOn");
const myClass = await MyClass.powerOn();
expect(myClass).toBeInstanceOf(MyClass);
expect(spy).toHaveBeenAwaitedFor();
^^^^^^^^^^^^^^^^^^^^
spy.mockRestore();
}, 10000);
Тест, который я подчеркнул, не существует, но я бы хотел его протестировать.Могу ли я узнать, ожидался ли вызванный мной метод?
edit:
Уилл Дженкинс указал, что не ясно, о чем я спрашиваю.По сути, я хочу убедиться, что Обещание, возвращаемое adapter.powerOn()
, было разрешено к тому времени, когда была выполнена моя функция.Поскольку у меня уже была проблема, когда я случайно удалил await
до adapter.powerOn()
.
async powerOn (): Promise {const myClass = new MyClass ();adapter.powerOn ();вернуть myClass;}
Поэтому, когда я вызывал свою функцию с помощью
await powerOn();
, эта функция была разрешена, но она не ожидала вызова adapter.powerOn()
, и мне пришлось потратить некоторое время на отладку.Поэтому я хотел бы убедиться, что adapter.powerOn()
разрешено к моменту завершения await powerOn()
.