неопределенный тест жасмина

Я столкнулся с той же проблемой в IntelliJ IDEA.

Чтобы решить проблему подключения, мне пришлось отключить (⌘ + F2 с использованием ключевых привязок по умолчанию на маке) и снова подключиться. Просто нажать «Обновить» было недостаточно.

0
задан Roy 13 July 2018 в 14:39
поделиться

2 ответа

1
ответ дан Castro Roy 17 August 2018 в 12:35
поделиться

Во-первых, вы следите за contactService, который после кода, который вы предоставляете, не определяется нигде. И вы должны определить свой contactSevice перед выполняемой функцией compileComponents().

, чтобы вы делали что-то вроде этого.

TestBed.configureTestingModule({
  declarations: [ ContactComponent ],
  imports:[
    FormsModule, 
    ReactiveFormsModule, 
    HttpClientModule, HttpClientTestingModule],
  providers:[
    ...,
    {
    provide: ContactService,
    useValue: class {
      sendMail: () => of({//what ever object you want to return here});
    }
  }],
  schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();

Но вышеприведенный подход делает ваш макет службы вызванная функция, и вы не можете на самом деле шпионить за ней. Если вам нужно шпионить за ней и делать все, что хотите, с помощью макетной службы. Вы можете реализовать такой макет:

class MockContactService {
  sendMail() {
    return of({});
  }
}

let mockContactService;

beforeEach(()=> {
  mockContactService = new MockContactService();
  TestBed.configureTestingModule({
     ...,
     providers:[
       {
         provide: ContactService,
         useValue: mockContactService,
     }],...
  })
  .compileComponents();

  it('what ever', () => {
    spyOn(mockContactService, 'sendMail');
  })
})
1
ответ дан lupa 17 August 2018 в 12:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: