Существует ли rspec, эквивалентный mockito ArgumentCaptor? - PullRequest
0 голосов
/ 15 мая 2018

У меня есть проект Java, который использует ArgumentCaptor для того, чтобы утверждать вызовы к конкретному фиктивному объекту (заглушке). Есть ли в Rails эквивалентный Rspec ArgumentCaptor? Я хочу иметь возможность смоделировать модель ActiveRecord и сравнить утверждать аргументы, переданные в вызов сохранения.

Обновление 1

Вот пример кода Java, который использует ArgumentCaptor. Обратите внимание на возможность украшения макета, чтобы собрать все объекты, которые передаются тестируемому методу, и затем утверждать их.

 @Test
public void should_import_all_tax_treatment_domain_data() throws Exception {
    // Arrange
    this.mockInputStream("DOMAIN-treatment.json");

    // Act
    this.importService.runImport("DOMAIN-treatment.json");

    // Assert
    ArgumentCaptor<TaxTreatment> argument = ArgumentCaptor.forClass(TaxTreatment.class);

    verify(this.taxTreatmentRepositoryMock, times(9)).findByCode(anyString());
    verify(this.taxTreatmentRepositoryMock, times(9)).save(argument.capture());

    assertEquals("Withhold All", argument.getAllValues().get(0).getName());
    assertEquals("Withhold", argument.getAllValues().get(1).getName());
    assertEquals("Pay Cash", argument.getAllValues().get(2).getName());
    assertEquals("None", argument.getAllValues().get(3).getName());
    assertEquals("Sell All", argument.getAllValues().get(4).getName());
    assertEquals("Sell for Taxes", argument.getAllValues().get(5).getName());
    assertEquals("Swap", argument.getAllValues().get(6).getName());
    assertEquals("Debit Rtl Acct", argument.getAllValues().get(7).getName());
    assertEquals("Payroll Deduction", argument.getAllValues().get(8).getName());

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