Жасмин: Проверка, вызван ли метод другим методом из другого класса - PullRequest
0 голосов
/ 07 января 2019

У меня есть 2 класса, как показано ниже

class B {
  public b() { return 1 }
}

class A {
  b: B = new B()
  public run() { return this.b.b() }
}

Я пытался использовать следующий тест, чтобы проверить, сделал ли метод b () из класса B, но тест не работает

describe('A spy', () => {
  let a: A
  let b: B

  beforeEach(() => {
    a = new A()
    b = new B()
    spyOn(b, 'b')

    a.run()
  })

  it('tracks that the spy was called', () => {
    expect(b.b).toHaveBeenCalled()
  })
})

Я неправильно понял концепцию тестирования Жасмин? я также попытался `jasmine.createSpy ', он также не работает

P.S. я попытался проверить это вручную и подтвердил, что метод b () из класса B был вызван

1 Ответ

0 голосов
/ 07 января 2019

b переменная нигде не используется, это не тот же объект, что и this.b внутри a, поэтому b.b не вызывается.

Должно быть:

a = new A()
spyOn(a.b, 'b')
a.run()

expect(a.b.b).toHaveBeenCalled()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...