【发布时间】:2021-01-10 09:53:21
【问题描述】:
我为我的 Unity 游戏创建了一个脚本,用于管理脚本所附加到的游戏对象的悬停状态
public sealed class HoverStateController : MonoBehaviour
{
private void OnMouseOver()
{
UpdateEntityHoverState(true);
}
private void OnMouseExit()
{
UpdateEntityHoverState(false);
}
private void UpdateHoverState(bool hovered)
{
// ... modify the state ...
}
}
我知道我不应该尝试测试私有方法,因为没有必要,我可以检查公共服务的结果(Should I test private methods or only public ones?)。
问题是UpdateHoverState 中的逻辑很容易测试。所以我可以
- 不测试它,因为它是私有的
- 将方法公开并对其进行测试,但访问修饰符应尽可能受到限制,因此这违反了惯例 (Access Modifiers - what's the purpose?)
- 通过触发某事来执行
OnMouseOver和OnMouseExit
我更喜欢最后一个,但我不知道 Unity 是否提供了触发这些方法的方法。有没有办法创建一个在内部调用它们的模拟?
【问题讨论】:
-
我不确定,但是否应该将其作为单元测试进行测试。它不应该是 UI 测试的一部分吗?
-
嗯,我不确定,必须阅读一下