class_docstr: Test class for SlackOutput
class_docstr_tok: ["Test","class","for","SlackOutput"]
docstr: Setup before each method
docstr_tok: ["Setup","before","each","method"]
code: def setup(self, provider_constructor):
      """Setup before each method"""
      provider = MagicMock()
      provider_constructor.return_value = provider
      provider.load_credentials = Mock(
          side_effect=lambda x: self.CREDS
          if x == self.DESCRIPTOR
          else None
      )
  
      self._provider = provider
      self._dispatcher = SlackOutput(None)
  
imports: from collections import Counter, OrderedDict
  from mock import patch, Mock, MagicMock
  from nose.tools import assert_equal, assert_false, assert_true, assert_set_equal
  from streamalert.alert_processor.helpers import compose_alert
  from streamalert.alert_processor.outputs.slack import SlackOutput
  from tests.unit.streamalert.alert_processor.helpers import get_random_alert, get_alert
label_desc: Use image node_id 1 for calling the TestSlackOutput obj's underlying member method code with example usage: obj.setup(provider_constructor) without return types