Utility for unit testing actix actors, extension for Mocker
. I wrote a blog post Mocking Actix Actor without getting a gray hair a
while ago, you might find it useful.
Dependencies:
toml
[dev-dependencies]
actix-actor-expect = "0.1.0"
Code: ```rust
pub enum TestActorCommand { Hello, Dunno, Echo(String), }
pub struct TestActor {}
impl Actor for TestActor {
type Context = Context
impl Handler
fn handle(&mut self, msg: TestActorCommand, _ctx: &mut Self::Context) -> Self::Result {
match msg {
TestActorCommand::Echo(message) => Ok(message),
rest => Ok(format!("{:?}", rest)),
}
}
}
async fn sendshelloback() {
let actorexpect = ActorExpect::
let _ = actor
.send(TestActorCommand::Echo("Message".to_string()))
.await
.expect("Not able to process Echo");
let _ = actor
.send(TestActorCommand::Hello)
.await
.expect("Not able to process Hello");
let _ = actor
.send(TestActorCommand::Dunno)
.await
.expect("Not able to process Dunno");
assert_eq!(actor_expect.total_calls(), 3_usize);
assert_eq!(
actor_expect.calls_of_variant(TestActorCommand::Echo("Message".to_string())),
1_usize
);
} ```
Also take a look at tests.
Distributed under the terms of MIT license and Apache license.