Ответ 1
Я никогда не связывал эти функции вместе, потому что, на мой взгляд, они, похоже, делают обратное. Вы говорите, когда я вызываю этот метод -onAdmin - в области вызовите его как обычно. Это то, что предоставляет нам метод callThrough jasmine.
Но тогда вы цепляетесь по методу callFake, а затем вы говорите, но на самом деле не называете его, вместо этого называете эту фальшивую функцию - очень противоречивой.
Если вы хотите вызвать шпиона в методе onAdmin, и вместо того, чтобы его уволили, вы хотите, чтобы он делал что-то еще - что-то насмехалось - затем используйте .and.callFake(fn). Также учтите, например, что @stefan выше сказал - не вызывайте функцию - callFake просто хочет функцию как параметр, она сама позаботится о ее вызове.
Это может быть больше в соответствии с тем, что вы ищете, если не показать нам еще какой-нибудь код.
spyOn(scope, 'onAdmin')and.callFake(done)