Mirror Secret Sauce.
A lot of developers are surprised by how stable Mirror is, compared to what they've used before.
This is not by coincidence. Mirror is heavily tested with:
- > 1400 unit tests
- ~ 80% test coverage
[2021-06-17] Mirror Test Coverage of 79.6% - including all [Obsoletes]
In other words, 80% of our code is covered with tests making sure that for the given input, it always produces the correct output. Here is what this means in practice:
- If you report a bug, we usually fix it and add a test to guarantee that it never happens again.If we accidentally introduce a bug, odds are our tests will catch it immediately before you ever encounter it in our game.
- We can improve existing functions with confidence. If a rewrite doesn't produce exactly the same output as the previous version, then our tests will catch it.
If you download Mirror from the Asset Store, then you don't see those tests because we don't want you to worry about them. They are only on GitHub.
To reproduce the Coverage results, use Unity's Code Coverage Package and run all of our Edit Mode tests.
Code Coverage settings
If you want to contribute tests or clean up existing ones, please do!
Check out the
MirrorPlayModeTestbase classes. They provide some convenience functions and setup that we use for most of our tests. For example, Creating a networked object with some network components.