aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJasonM232013-08-16 20:04:55 +1000
committerPete Bacon Darwin2013-09-05 14:35:25 +0100
commit5b1f9b3c2b89fa51a07491ea5448564a9787a547 (patch)
tree697e5724eab99c410cde942e4dc125d74022a0b4
parent08a07f2d305fe91ee968e45e97ceda258aef4e8a (diff)
downloadangular.js-5b1f9b3c2b89fa51a07491ea5448564a9787a547.tar.bz2
docs(mock.inject): document underscore wrapping syntax
Add a summary describing the ignored underscore syntax sugar helper, with a simple use case example. Closes #3621
-rw-r--r--src/ngMock/angular-mocks.js36
1 files changed, 34 insertions, 2 deletions
diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js
index 5d8b1b33..e6b7b868 100644
--- a/src/ngMock/angular-mocks.js
+++ b/src/ngMock/angular-mocks.js
@@ -1735,8 +1735,40 @@ window.jasmine && (function(window) {
* instance of {@link AUTO.$injector $injector} per test, which is then used for
* resolving references.
*
- * See also {@link angular.mock.module module}
*
+ * ## Resolving References (Underscore Wrapping)
+ * Often, we would like to inject a reference once, in a `beforeEach()` block and reuse this
+ * in multiple `it()` clauses. To be able to do this we must assign the reference to a variable
+ * that is declared in the scope of the `describe()` block. Since we would, most likely, want
+ * the variable to have the same name of the reference we have a problem, since the parameter
+ * to the `inject()` function would hide the outer variable.
+ *
+ * To help with this, the injected parameters can, optionally, beenclosing with underscores.
+ * These are ignored by the injector when the reference name is resolved.
+ *
+ * For example, the parameter `_myService_` would be resolved as the reference `myService`.
+ * Since it is available in the function body as _myService_, we can then assign it to a variable
+ * defined in an outer scope.
+ *
+ * ```
+ * // Defined out reference variable outside
+ * var myService;
+ *
+ * // Wrap the parameter in underscores
+ * beforeEach( inject( function(_myService_){
+ * myService = _myService_;
+ * }));
+ *
+ * // Use myService in a series of tests.
+ * it('makes use of myService', function() {
+ * myService.doStuff();
+ * });
+ *
+ * ```
+ *
+ * See also {@link angular.mock.module angular.mock.module}
+ *
+ * ## Example
* Example of what a typical jasmine tests looks like with the inject method.
* <pre>
*
@@ -1773,7 +1805,7 @@ window.jasmine && (function(window) {
* });
*
* </pre>
- *
+ *
* @param {...Function} fns any number of functions which will be injected using the injector.
*/
window.inject = angular.mock.inject = function() {