我有一个Unity (版本2020.2.1f1)项目,我已经在C#中提取了一个小工具,我想要对它进行单元测试。目前,为了编译,实用程序类需要扩展MonoBehaviour,但我希望避免这种情况,并使类保持纯C#。
我在Unity中找到了关于单元测试的文档,但只找到了Unity Test Framework,它似乎是面向游戏代码的,而不是纯粹的C#。有没有办法在Unity中对普通的C#代码进行单元测试?
发布于 2021-02-25 20:14:57
下面的文章没有提到测试用例必须包含特定于Unity的代码https://www.raywenderlich.com/9454-introduction-to-unity-unit-testing
Unity毕竟是C#。并不是项目中的所有内容都必须使用Unity API
发布于 2021-02-25 23:06:37
为什么需要实现MonoBehaviour
我建议你用例如:
public class YourClass
{
...
}在哪里/如果需要的话,你把它包装在一个
public class YourClassBehaviour : MonoBehaviour
{
public YourClass yourClassInstance;
}然后只测试YourClass的内部功能。
无论哪种方式:为了对它进行单元测试,它不需要是特定于的任何东西,。
你可以直接去做。
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。
https://stackoverflow.com/questions/66368183
复制相似问题