在统一测试中设置之后,该名称在当前上下文中不存在



我试图在unity中进行单元测试,因为我重复了代码,我试图像这样使用SetUp

[SetUp]
public void Setup()
{
PlayerState playerState = (PlayerState)ScriptableObject.CreateInstance("PlayerState");
}
[Test]
public void IsPlayerWinnerTest()
{
playerState.LastAnswerTime = 6f;
playerState.IsLastAnswerCorrect = true;
}

例如,如果我有这样的东西,我会得到:名称"playerState"在当前上下文中不存在。知道吗?谢谢

您将PlayerState playerState声明为方法内的局部变量。。。将其作为字段移动到类,您应该可以完成

public class YOURCLASS
{
// Now it is a class field so every method nows it
PlayerState playerState
[SetUp]
public void Setup()
{
playerState = ScriptableObject.CreateInstance<PlayerState>();
}
[Test]
public void IsPlayerWinnerTest()
{
playerState.LastAnswerTime = 6f;
playerState.IsLastAnswerCorrect = true;
}
}

最新更新