передать функцию Python с аргументом в другую функцию

Во-первых, вы следите за 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');
  })
})
0
задан Mohammad 19 January 2019 в 08:56
поделиться

1 ответ

Прежде всего, я предполагаю, что функция menu_conditions, которую вы вызываете, на самом деле является функцией parent, но я считаю, что вы должны это исправить.

Во-вторых, когда вы запускаете child() в последней строке, он возвращает число или строку error. Если вы хотите иметь возможность запустить child внутри папки parent, просто передайте его без скобок, например:

print(parent(child, ui)) 
0
ответ дан Mohammad 19 January 2019 в 08:56
поделиться
Другие вопросы по тегам:

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