Unity和单元测试

Tulenber 13 March, 2020 ⸱ Beginner ⸱ 3 min ⸱

50种绿色阴影

我们身处21世纪,这意味着测试不仅是游戏开发的重要组成部分,而且还是任何软件产品的开发。

在大型公司中,测试由质量保证(QA)部门处理,并且是开发过程中必不可少的部分。 当然,在小型团队中,任何人都可以做到这一点(通常是游戏设计师或程序员),最终,游戏质量不佳,并且会在玩家身上进行测试 ^_^

质量控制的技术方面也是一个很大的话题。为了帮助开发人员在设备上测试游戏,Unity提供了Unity Remote工具。对于全局测试,可以使用Apple设备和服务的Test Flight,例如Android的fir.im。此外,还有许多较小的功能,例如用于记录https流量以检查特定网络请求的工具。

本文将涉及创建单元测试,这是一个广泛的主题的一小部分,应该使程序员的生活更轻松。

单元测试

程序员有很多工具和实践。在2000年代初,人们对测试产生了极大的兴趣,当时极限编程测试驱动开发形成。单元测试是这些实践的基本工具之一。在Internet上查找有关此主题的信息非常容易,因此我们将不着重于基础知识的解释。如果您需要有关基础知识的更多详细信息,请从单元测试随时回到这里,获得Unity的实用示例。

Unity Test Framework是在Unity中创建单元测试的主要工具。它基于NUnit,并且由于它是最受欢迎的 C#的测试框架,熟悉其文档将非常有用。

对于这种情况,我们将向提示库添加单元测试, 在我们的上一篇文章中进行了介绍:

  1. 打开Test Runner Window > General > Test Runner
    Open Test Runner

  2. 切换到PlayMode"Create PlayMode Test Assembly Folder"为我们的测试
    Create Tests folder

  3. 要创建新脚本,请使用"Create Test Script in current folder"
    Create Test Script

  4. 对于需要测试的代码,创建Create > Assembly Definition
    Create Assembly Definition

  5. 将指向我们的Assembly Definition的链接添加到Tests.asmdef文件中,该文件位于Tests文件夹中
    Add Assembly Definition

  6. 不要忘记按下底部的“Apply”按钮并进行安全更改

  7. 在步骤3中创建的脚本中,我们编写测试

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    public class TestSuit
    {
        // 使用OneTimeSetUp注释,我们实例化单例管理器
        [OneTimeSetUp]
        public void Setup()
        {
            // 实例化提示管理器
            new GameObject().AddComponent<KhtHintsManager> ();
        }
        
        [UnityTest]
        public IEnumerator TestKhtHintsManager()
        {
            // 测试经理的存在
            Assert.NotNull(KhtHintsManager.Instance);
            yield return null;
        }
    }
    

  8. 运行测试
    Run tests

  9. 高兴与结果
    Get results

结论

这些步骤是一个小示例,用于演示如何在Unity中创建单元测试(完整的测试代码可以在提示库)。为了正确地测试功能,应将大量时间和代码牺牲给测试神。通常,测试代码比业务部件代码还要大,但这将有助于节省更多时间来捕获与回归相关的错误。显然,单元测试只是所有必要测试的一小部分,您仍然需要添加集成测试以及测试UI,但这超出了有关单元测试的文章范围。下次见!^_^


如果您喜欢这篇文章,可以为它提供支持



Privacy policyCookie policyTerms of service
Tulenber 2020