首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将普通的C#代码和测试添加到Unity项目中?

如何将普通的C#代码和测试添加到Unity项目中?
EN

Stack Overflow用户
提问于 2021-02-25 20:06:38
回答 2查看 83关注 0票数 0

我有一个Unity (版本2020.2.1f1)项目,我已经在C#中提取了一个小工具,我想要对它进行单元测试。目前,为了编译,实用程序类需要扩展MonoBehaviour,但我希望避免这种情况,并使类保持纯C#。

我在Unity中找到了关于单元测试的文档,但只找到了Unity Test Framework,它似乎是面向游戏代码的,而不是纯粹的C#。有没有办法在Unity中对普通的C#代码进行单元测试?

EN

回答 2

Stack Overflow用户

发布于 2021-02-25 20:14:57

下面的文章没有提到测试用例必须包含特定于Unity的代码https://www.raywenderlich.com/9454-introduction-to-unity-unit-testing

Unity毕竟是C#。并不是项目中的所有内容都必须使用Unity API

票数 0
EN

Stack Overflow用户

发布于 2021-02-25 23:06:37

为什么需要实现MonoBehaviour

我建议你用例如:

代码语言:javascript
复制
public class YourClass 
{
    ... 
}

在哪里/如果需要的话,你把它包装在一个

代码语言:javascript
复制
public class YourClassBehaviour : MonoBehaviour
{ 
    public YourClass yourClassInstance; 
}

然后只测试YourClass的内部功能。

无论哪种方式:为了对它进行单元测试,它不需要是特定于的任何东西,

你可以直接去做。

代码语言:javascript
复制
namespace YourThingy.EditorTests
{
    public class YourClassTest
    {
        private YourClass yourClassInstance;

        [OneTimeSetup]
        public void Setup()
        {
            yourClassInstance = new YourClass();
        }

        [Test]
        public void SomeTest()
        {
            yourClassInstance.DoSomething();
            Assert.AreEuqual("someValue", yourClassInstance.someValue);
        }

        [Test]
        public void SoemTestThatIsntEvenUsingYourClass()
        {
            Assert.IsTrue(1f == (2f * 5f / 10f));
        } 
    }
}

正如您所看到的,单元测试是纯c#的,并且不一定使用来自Unity API的任何东西(当然,测试框架本身除外)

为了不进入播放模式,只需确保您使用的是Editor Tests

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66368183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档