You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -96,7 +96,7 @@ Before creating enhancement suggestions, please check the list of enhancements s
96
96
97
97
### How Do I Submit A (Good) Pull Request?
98
98
99
-
Please send a [GitHub Pull Request](https://github.com/svermeulen/Extenject/compare) with a clear list of what you've done (read more about [pull requests](http://help.github.com/pull-requests/)).
99
+
Please send a [GitHub Pull Request](https://github.com/svermeulen/Extenject/compare) with a clear list of what you've done (read more about [pull requests](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)).
100
100
When you send a pull request, we will love you forever if you include unit tests.
Copy file name to clipboardExpand all lines: Documentation/WritingAutomatedTests.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
4
4
When writing properly loosely coupled code using dependency injection, it is much easier to isolate specific areas of your code base for the purposes of running tests on them without needing to fire up your entire project. This can take the form of user-driven test-beds or fully automated tests using NUnit. Automated tests are especially useful when used with a continuous integration server. This allows you to automatically run the tests whenever new commits are pushed to source control.
5
5
6
-
There are three very basic helper classes included with Zenject that can make it easier to write automated tests for your game. One is for Unit Tests, the other is for Integration Tests, and the third is for Scene Tests. All approaches are run via Unity's built in Test Runner (which also has a command line interface that you can hook up to a continuous integration server). The main differences are that Unit Tests are much smaller in scope and meant for testing a small subset of the classes in your application, whereas Integration Tests can be more expansive and can involve firing up many different systems. And Scene Tests are used to fire up entire scenes and then probe the state of the scene as part of the test.
6
+
There are three basic helper classes included with Zenject that can make it easier to write automated tests for your game. One is for Unit Tests, the other is for Integration Tests, and the third is for Scene Tests. All approaches are run via Unity's built in Test Runner (which also has a command line interface that you can hook up to a continuous integration server). The main differences are that Unit Tests are much smaller in scope and meant for testing a small subset of the classes in your application, whereas Integration Tests can be more expansive and can involve firing up many different systems. And Scene Tests are used to fire up entire scenes and then probe the state of the scene as part of the test.
7
7
8
8
This is best shown with some examples.
9
9
@@ -297,7 +297,7 @@ public class SpaceShipTests : ZenjectIntegrationTestFixture
297
297
298
298
After `PostInstall()` is called, our integration test is injected, so we can define `[Inject]` fields on it like above if we don't want to call `Container.Resolve` for every test.
299
299
300
-
Note that we can yield our coroutine to test behaviour across time. If you are unfamiliar with how Unity's test runner works (and in particular how 'playmode test' work) please see the [unity documentation](https://docs.unity3d.com/Manual/testing-editortestsrunner.html).
300
+
Note that we can yield our coroutine to test behaviour across time. If you are unfamiliar with how Unity's test runner works (and in particular how 'playmode test' work) please see the [unity documentation]()https://docs.unity3d.com/Manual/testing-editortestsrunner.html.
301
301
302
302
Every zenject integration test is broken up into three phases:
`ProjectContext` isaveryconvenientplacetoputobjectsthatyouwanttopersistacrossscenes. However, thefactthatit's completely global to every scene can lead to some unintended behaviour. For example, this means that even if you write a simple test scene that uses Zenject, it will load the `ProjectContext,` which may not be what you want. To address these problems it is often better to use Scene Parenting instead, since that approach allows you to be selective in terms of which scenes inherit the same common bindings. See [here](href="#scene-parenting") for more details on that approach.
1692
+
`ProjectContext` isaveryconvenientplacetoputobjectsthatyouwanttopersistacrossscenes. However, thefactthatit's completely global to every scene can lead to some unintended behaviour. For example, this means that even if you write a simple test scene that uses Zenject, it will load the `ProjectContext,` which may not be what you want. To address these problems it is often better to use Scene Parenting instead, since that approach allows you to be selective in terms of which scenes inherit the same common bindings. See [here](#scene-parenting) for more details on that approach.
1693
1693
1694
1694
Notealsothatbydefault, anygameobjectsthatareinstantiatedinsideProjectContextwillbeparentedunderneathitbydefault. Ifyou'd prefer that each newly instantiated object is instead placed at the root of the scene hierarchy (but still marked DontDestroyOnLoad) then you can change this by unchecking the flag 'ParentNewObjectsUnderContext' in the inspector of ProjectContext.
1695
1695
@@ -1908,11 +1908,11 @@ There are also settings for the signals system which are documented [here](#sett
1908
1908
1909
1909
See [here](href="Documentation/Signals.md").
1910
1910
1911
-
## <a id="creating-objects-dynamically"></a>Creating Objects Dynamically Using Factories
1911
+
## Creating Objects Dynamically Using Factories
1912
1912
1913
1913
See [here](href="Documentation/Factories.md").
1914
1914
1915
-
## <a id="memory-pools"></a>Memory Pools
1915
+
## Memory Pools
1916
1916
1917
1917
See [here](href="Documentation/MemoryPools.md").
1918
1918
@@ -3321,18 +3321,15 @@ It is possible to remove or replace bindings that were added in a previous bind
3321
3321
*PokemonGo (both [iOS](https://itunes.apple.com/us/app/pokemon-go/id1094591345?mt=8) and [Android](https://play.google.com/store/apps/details?id=com.nianticlabs.pokemongo&hl=en))
3322
3322
* [ZenjectHero](https://github.com/Mathijs-Bakker/Zenject-Hero) - Remake of the classic Atari game H.E.R.O. Includes complete source.
* [FarmAway!](http://www.farmawaygame.com/) (iOS and Android)
3330
3329
* [BuildAway!](http://www.buildawaygame.com/) (iOS and Android)
3331
3330
*StickSoccer2 ([iOS](https://itunes.apple.com/gb/app/stick-soccer-2/id1104214157?mt=8) and [Android](https://play.google.com/store/apps/details?id=com.sticksports.soccer2&hl=en_GB))
* [BedtimeMathApp](http://bedtimemath.org/apps) - ([iOS](https://itunes.apple.com/us/app/bedtimemath/id637910701) and [Android](https://play.google.com/store/apps/details?id=com.twofours.bedtimemath))
3335
-
* [4Pics1Word: JohnEinstein](https://play.google.com/store/apps/details?id=com.qantanstudio.impossiblequiz) (Android) - Puzzle game
3336
3333
* [EcsRxRoguelike2D](https://github.com/grofit/ecsrx.roguelike2d) - An example of a Roguelike 2d game using EcsRx and Zenject
3337
3334
* [Golfriends](https://www.airconsole.com/#!play=com.octopusgames.golfriends) (WebGL) - Mini golf game using a combination of WebGL and mobile
3338
3335
*WordWinner ([iOS](https://itunes.apple.com/us/app/id1404769349) and [Android](https://play.google.com/store/apps/details?id=com.SmoreGames.WordWinner)) - A Word Brain Game
@@ -3344,16 +3341,11 @@ It is possible to remove or replace bindings that were added in a previous bind
3344
3341
* [ViewController](http://blog.jamjardavies.co.uk/index.php/2016/04/12/view-controller-with-zenject/) - A view controller system
3345
3342
* [Alensia](https://github.com/mysticfall/Alensia) - High level framework to build RPG style games using Unity
3346
3343
3347
-
Tools
3348
-
3349
-
* [Modest3D](http://www.modest3d.com/editor) (WebGL, WebPlayer, PC) - An IDE to allow users to quickly and easily create procedural training content
3350
-
* [Modest3DExplorer](http://www.modest3d.com/explorer) (WebGL, WebPlayer, iOS, Android, PC, Windows Store) - A simple editor to quickly create a 3D presentation with some number of slides
0 commit comments