如何将在实现中使用ClassTag的方法存根?
class RefsFactory {
def get[I <: Item : ClassTag]: RefTo[I] = {
val itemType = implicitly[ClassTag[A]].runtimeClass.asInstanceOf[Class[A]]
// ...
}
}这个类在我们的代码中用得很多,我想将它存根,以返回其他关于itemType的mock。
val factory = stub[RefsFactory]
val otherType = stub[RefTo[OtherType]]
(factory.get[OneType]) returns RefTo(new OneType())
(factory.get[OtherType]) returns otherType谢谢
发布于 2019-10-04 20:32:43
试着简化你的问题,方法
def get[I <: Item : ClassTag]: RefTo[I]类似于在0度方法上设置上下文边界。
def foo[I: ClassTag]它等同于具有一个隐式参数的方法
def foo[I](implicit ev: ClassTag[I)因此,考虑到Methods with implicit parameters,我们可以这样模拟
(myMock.foo[SomeType](_: ClassTag[SomeType])).expects(*).returns(...)https://stackoverflow.com/questions/58235746
复制相似问题