【问题标题】:Unit test gameobjects on scene单元测试场景中的游戏对象
【发布时间】:2019-11-04 09:23:38
【问题描述】:

我在尝试进行单元测试时遇到了麻烦。我有一种在场景中添加游戏对象的方法,每个游戏对象都有不同的位置和旋转以及父对象。我想运行测试来检查我的对象是否以相同的位置和旋转添加到它们的父对象中。

我在游戏模式测试中尝试过,但在执行 GameObject.Find() 时不断收到 NullReferenceException 我在编辑模式下进行了相同的测试,但它不起作用,因为所有对象都没有初始化。

当唤醒和启动 monobehaviours 方法被调用时,如何在场景中测试游戏对象?

希望有人能帮助我

【问题讨论】:

  • Find 通常有点糟糕...您能否添加更多详细信息,例如您正在使用的代码等?
  • 一般情况下 - 尝试从 Unity 框架中抽象出尽可能多的逻辑。单独对该逻辑进行单元测试。将任何与 Unity API 交互的东西都视为集成测试。
  • 基于 Ant P 的评论,如果你希望你的统一代码是可单元测试的,我强烈推荐 the humble object pattern
  • 你需要显示被测方法的代码。

标签: c# unit-testing unity3d


【解决方案1】:

您可以尝试引用生成的每个对象并将它们存储在一个数组中。

之后,您可以遍历数组进行测试。

Gameobject.Find(...) 成本高,如果想在不破坏脚本的情况下重命名场景中的对象,可能会成为问题。

【讨论】:

    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多