Mockit для Swift - PullRequest
       7

Mockit для Swift

0 голосов
/ 30 октября 2018

Мне нужно дважды заглушить один и тот же метод моего mockObject, но я не могу использовать переменную thenReturn, потому что это универсальный метод, возвращающий разные типы Single в соответствии с T, указанным в качестве аргумента. (В приведенном выше коде Query является протоколом, а метод getSingle<T>(query: T) -> Single<T.Data> where T : Query принимает любой класс, который реализует запрос, и возвращает тип Single типа T.Data)

let _ = self.mockDataSource.when().call(withReturnValue: self.mockDataSource.getSingle(query: QueryA())) .thenReturn(Single.just(payloadA))

let _ = self.mockDataSource .when().call(withReturnValue: self.mockDataSource.getSingle(query: QueryB())) .thenReturn(Single.just(payloadB))

Однако вторая заглушка никогда не вызывается, всегда первая, и мои тесты не пройдены. Я хотел бы иметь возможность создать заглушку, возвращающую определенный тип в соответствии с типом, предоставленным в качестве аргумента, либо путем сопоставления с предоставленным типом (я не смог сделать это с ArgumentMatcher), либо путем указания порядка ...

Спасибо за помощь,

...