Как проверить IBAction и селектор в ObjC - PullRequest
0 голосов
/ 22 апреля 2020

Я запутался в том, как создать модульный тест для проверки вызова метода IBAction, а также для проверки селектора.

Например, у меня есть этот код.

- (IBAction)tapButton:(UITapGestureRecognizer *)sender {
       //do something 
 }

Этот код предназначен для селектора

[button addTarget:self action:@selector(tapButton:) forControlEvents:UIControlEventTouchUpInside];

- (void)tapButton:(id)sender {
       //do something
}

У меня есть этот модульный тест.

- (void)test_tapAction {
   ClassView *view = [ClassView alloc] init];
   id mock = [OCMockObject partialMockForObject:view];
   [[mock expect] tapButton:[OCMArg any]];
   [mock tapButton:[OCMArg any]];
   OCMVerify([mock tapButton:[OCMArg any]]);
   [mock stopMocking];
}

Но я не уверен, что это правильный путь.

1 Ответ

0 голосов
/ 24 апреля 2020

Я получаю решение. Код о тесте неплох, но в этой строке есть ошибка.

[[mock expect] tapButton:[OCMArg any]];

В этой строке не вызывается метод, который я хочу проверить

  • ( IBAction) tapButton: (UITapGestureRecognizer *) отправитель

В заключение код о модульном тестировании выглядит следующим образом:

- (void)test_tapCreditsAction {
   ClassView *view = [ClassView alloc] init];
   id mock = [OCMockObject partialMockForObject:view];
   [mock tapButton:[OCMArg any]];
   OCMVerify([mock tapButton:[OCMArg any]]);
   [mock stopMocking];
  }

Это правильный способ проверки IBAction или селектор.

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