Behaviour for the two calls most Slack integrations actually make: posting to a channel and DMing a user.
Implement this in your real Slack client, and swap in SlackSandbox
itself (which implements it too) for dev/test:
# config/dev.exs
config :my_app, :slack_adapter, SlackSandbox
# config/prod.exs
config :my_app, :slack_adapter, MyApp.Slack.HttpAdapter
# in your app
adapter = Application.fetch_env!(:my_app, :slack_adapter)
adapter.post_message("Deploy finished", "#ops")