描述
Apologies in advance if this request is already implemented in some way but I didn't find anything in the doc/internet. My scenario is that I'm using akka persistence with akka cluster sharding for implementing a ES service.
The issue that I'm finding out is that I'm not able to basically test the classes that are using the sharding calls. For example, suppose I've the following class:
class MyService(sharding: ClusterSharding) {
def method1(id: Int): Future[CustomObj]
}
where MyService.method1(id) is using the sharding object via the ask pattern.
My expected feature would be to have a simple way to mock the sharding responses.
The test that I would like (using Scalatest) is to write a mock on the responses generated by the sharding.
I would like to have something like this:
val sharding: MyClusterShardingMock = MyClusterShardingMock()
val subject = new MyService(sharding)
//define the mocking before call the class method
sharding.respondTo(req: expectedCommand)(response: expectedResponse)
subject.method1("123").futureValue mustBe response
Is there any way to achieve something similar to this? I'm in a point that I'm unable to unit testing some classes that depends from ClusterSharding. Thanks in advice.