Mirror的秘方
与他们之前使用的相比,许多开发人员对 Mirror 的稳定性感到惊讶。
这并非巧合。Mirror经过严格测试:
- 大于 1400 个单元测试
- ~ 80% 的测试覆盖率
据我们所知,Mirror 拥有所有用于 Unity 的 MonoBehaviour networking 库的最高测试覆盖率
换句话说,我们 80% 的代码都被测试覆盖,确保对于给定的输入,它总是产生正确的输出。这在实践中意味着什么:
- 如果您报告错误,我们通常会修复它并添加测试以保证它永远不会再次发生。
如果我们不小心引入了一个错误,我们的测试很可能会在您在我们的游戏中遇到它之前立即发现它。 - 我们可以满怀信心地改进现有功能。如果重写没有产生与以前版本完全相同的输出,那么我们的测试将捕获它。
根据经验,在生产中遇到 Mirror 错误仅仅意味着我们还没有用测试覆盖那部分代码。
如果您从 Asset Store 下载 Mirror,那么您不会看到这些测试,因为我们不希望您担心它们。它们仅在 GitHub 上。
代码覆盖率设置
要重现覆盖率结果,请使用 Unity 的代码覆盖率包并运行我们所有的编辑模式测试。
MirrorTest
如果您想贡献测试或清理现有的测试,请这样做!
查看 MirrorEditModeTest 和 MirrorPlayModeTest 基类。它们提供了一些我们在大多数测试中使用的便利功能和设置。例如,使用一些网络组件创建一个网络对象。