scala - 如何使用 BehaviorTestKit 测试 MessageAdapter 效果
问题描述
我正在尝试使用BehaviorTestKit
来测试我的行为和行为调用的创建
val ackMapper: ActorRef[Ack] = context.messageAdapter(x => EventAck(x.id))
这导致MessageAdapterEffect
. 但是,我似乎无法找到一种方法来创建一个MessageAdapterEffect
满足expectEffect
testKit.expectEffect(MessageAdapter[Ack, EventAck](classOf[Ack], ack => EventAck(ack.id)))
导致类型不匹配,因为 lambda 虽然在功能上是等效的,但它是一个不同的实例。我也不能访问在行为内部创建的 lambda,因为它隐藏在创建行为的闭包中。
expectEffect
工作的意义是什么MessageAdapter
?
解决方案
原来我忽略了BehaviorTestKit.expectEffectPF()
,它可以用来匹配MessageAdapter
这样的:
testKit.expectEffectPF {
case MessageAdapter(clazz, _) if clazz == classOf[Ack] =>
}
虽然,由于类型擦除,我想不出一种方法来验证的第二个类型参数MessageAdapter[A,T]
推荐阅读
- html - 当浏览器窗口宽度小于 400 像素时,正文宽度不是 100%
- reactjs - 如何在 React 组件中使用 ckeditor 完整版
- excel - 用于复制/粘贴的 VBA 代码仅暂时有效
- python - pyinstaller 转换后无法打开 .exe
- java - 关闭连接后使用结果集数据
- python-3.x - 通过迭代特征选择和设置范围创建布局 PDF
- android - RecyclerView 没有显示来自 json 数组的数据
- intellij-idea - 使用 Blaze 进行 IntelliJ Python 调试
- python - 'headers' 参数对 python 请求库中的重定向有效吗?
- r - How to shift a column values based on column with logical value in R