2016-07-16 9 views
0

我最近遇到了问题,你不能在单元测试中实例化MonoBehaviour,所以我正在经历移动所有与Unity无关的代码(代码不访问任何MonoBehaviour字段/方法)为单独的模型类,然后在相应的MonoBehaviour类中使用。但是,我所见过的所有Unity示例都具有与MonoBehaviour类中的给定游戏对象关联的所有代码。例如,游戏中的orc的代码位于Orc类中,该类来自MonoBehaviour。所以当我将单个OrcMonoBehaviour类分为一个orc模型和一个orc MonoBehaviour时,我正在努力命名我的类。命名MonoBehaviour类与命名相应的模型类时是否有最佳实践指南?命名模式与MonoBehaviours

+0

我宁愿考虑做正确的事。游戏编程不像'应用程序编程'。单元测试 - 大部分时间 - 有点愚蠢。这里有一个类似的问题的链接,用一个答案解释什么和为什么http://stackoverflow.com/questions/2418845/is-unit-testing-viable-in-game-programming – 2016-07-16 01:06:11

+0

这个问题似乎主要是在谈论如何为游戏编写好的测试。我的问题更多的是如何命名我的课程。在我上面的例子中,我想有一个我编写测试的'Orc'类。但是我见过的Unity书籍/例子将会在场景中附加一个“orc”脚本(来自'MonoBehaviour')。我正在寻找关于如何命名这些'MonoBehaviour'脚本的建议,因为脚本将是一个“orc”脚本,但是'Orc'已经是模型类的名称。 –

+0

@Mark单元测试完全不是愚蠢的,它允许在没有运行项目的情况下测试方法,使用许多不同的输入并在修改代码时报告红色标记会影响另一个代码(以及其他许多事情)。节省了无数个小时。实际上这对我们来说是一个招聘案例,一个申请人声称他不会因为毫无用处而进行测试,因为他是Unity ......而且他更好地学习。 – Everts

回答

2

游戏就像任何其他应用程序可以运行测试。如果测试在游戏中毫无用处,Unity不会花费数小时开发工具。

就像任何其他应用程序一样,某些部件无法像输入那样依赖于框架进行测试。在Unity中,关于像Update,Collision等引擎的所有方法都不能被测试,但它们可能是伪造的。

在Unity另一种情况是MonoBehaviour但你可以绕过容易以下是博客帖子:

http://blogs.unity3d.com/2014/07/28/unit-testing-at-the-speed-of-light-with-unity-test-tools/

基本上,MB类获取所有的相关的统一行动和回调。需要测试的逻辑进入自定义类。

至于命名,您可以使用XXXXController(MB)和XXXContainer(非MB)。

在您的测试中,您将重点放在测试包含所有逻辑的XXXContainer。

+0

谢谢。这正是我所期待的。 –