Scala 如何在Akka Actor中模拟HTTP服务
我有一个actor(实际上是一个持久actor),为了响应消息(命令),它需要进行HTTP调用。现在的问题是如何在单元测试中处理这个HTTP调用 通常,我会在测试时使用DI和模拟的组合来注入HTTP服务的模拟实现。但我不确定这是否是解决阿克卡问题的方法?即使这是如何在Akka中实现它,我也不确定如何在测试中进行注入和模拟 有什么想法吗?测试执行IO操作(HTTP调用、写入DB等)的参与者的惯用方法是什么Scala 如何在Akka Actor中模拟HTTP服务,scala,unit-testing,mocking,akka,actor,Scala,Unit Testing,Mocking,Akka,Actor,我有一个actor(实际上是一个持久actor),为了响应消息(命令),它需要进行HTTP调用。现在的问题是如何在单元测试中处理这个HTTP调用 通常,我会在测试时使用DI和模拟的组合来注入HTTP服务的模拟实现。但我不确定这是否是解决阿克卡问题的方法?即使这是如何在Akka中实现它,我也不确定如何在测试中进行注入和模拟 有什么想法吗?测试执行IO操作(HTTP调用、写入DB等)的参与者的惯用方法是什么 PS:我使用的是Akka类型。我个人认为,如果可能的话,应该避免在演员中进行IO操作(请参阅
PS:我使用的是Akka类型。我个人认为,如果可能的话,应该避免在演员中进行IO操作(请参阅) 话虽如此,我相信有些人会不同意,你可能不应该听我说:) 下面是我如何模拟它进行测试的
注意:我选择的所有类和方法的名称都只是占位符。当然,您应该根据工作环境选择更具体的名称 很抱歉格式化了。。我在手机上,它似乎不想和我合作!谢谢但是我应该提到我使用的是Akka类型(功能性风格),请看:我不知道如何将特性与该风格结合使用,这是一个很好的澄清。在这种情况下,您可以将trait的实现传递到apply方法中,并在那里使用它:def apply(client:client):Behavior[…]。谢谢。这种做法确实可行。你能用输入的Akka API的特定信息更新你的答案吗?所以我可以接受。谢谢你为Akka打过字。希望现在更清楚(再次为糟糕的格式感到抱歉)