title: Is it possible to override constants for module config functions in tests?
body: <p>I've spent quite a while banging my head against trying to override injected constants provided to modules' config functions. My code looks something like</p>
  
  <pre><code>common.constant('I18n', &lt;provided by server, comes up as undefined in tests&gt;);
  common.config(['I18n', function(I18n) {
    console.log("common I18n " + I18n)
  }]);
  </code></pre>
  
  <p>Our usual way to guarantee what I18n is being injected in our unit tests is by doing</p>
  
  <pre><code>module(function($provide) {
    $provide.constant('I18n', &lt;mocks&gt;);
  });
  </code></pre>
  
  <p>This works fine for my controllers, but it seems like the config function doesn't look at what's <code>$provide</code>d outside of the module. Instead of getting the mocked values, it gets the earlier value defined as part of the module. (Undefined in the case of our tests; in the below plunker, 'foo'.)</p>
  
  <p>A working plunker is below (look at the console); does anyone know what I'm doing wrong?</p>
  
  <p><a href="http://plnkr.co/edit/utCuGmdRnFRUBKGqk2sD">http://plnkr.co/edit/utCuGmdRnFRUBKGqk2sD</a></p>