迅捷的Mockit

时间:2018-10-30 17:00:27

标签: ios swift generics stub

我需要对我的mockObject的相同方法进行两次存根,但是我不能使用可变参数thenReturn,因为这是根据作为参数提供的T返回不同类型Single的通用方法。 (在Query上面的代码中是一个协议,方法getSingle<T>(query: T) -> Single<T.Data> where T : Query接受实现查询的任何类并返回T.Data类型的Single)

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失败)来根据作为参数提供的类型创建返回特定类型的存根。

谢谢您的帮助,

0 个答案:

没有答案