forked from BilalY/Rasagar
53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using System;
|
|
using System.Collections;
|
|
|
|
namespace UnityEngine.TestTools
|
|
{
|
|
/// <summary>
|
|
/// In an Edit Mode test, you can use `IEditModeTestYieldInstruction` interface to implement your own instruction. There are also a couple of commonly used implementations available:
|
|
/// - <see cref = "EnterPlayMode"/>
|
|
/// - <see cref = "ExitPlayMode"/>
|
|
/// - <see cref = "RecompileScripts"/>
|
|
/// - <see cref = "WaitForDomainReload"/>
|
|
/// </summary>
|
|
/// <example>
|
|
/// <code>
|
|
/// <![CDATA[
|
|
/// [UnityTest]
|
|
/// public IEnumerator PlayOnAwakeDisabled_DoesntPlayWhenEnteringPlayMode()
|
|
/// {
|
|
/// var videoPlayer = PrefabUtility.InstantiatePrefab(m_VideoPlayerPrefab.GetComponent<VideoPlayer>()) as VideoPlayer;
|
|
///
|
|
/// videoPlayer.playOnAwake = false;
|
|
///
|
|
/// yield return new EnterPlayMode();
|
|
///
|
|
/// var videoPlayerGO = GameObject.Find(m_VideoPlayerPrefab.name);
|
|
///
|
|
/// Assert.IsFalse(videoPlayerGO.GetComponent<VideoPlayer>().isPlaying);
|
|
///
|
|
/// yield return new ExitPlayMode();
|
|
///
|
|
/// Object.DestroyImmediate(GameObject.Find(m_VideoPlayerPrefab.name));
|
|
/// }
|
|
/// ]]>
|
|
/// </code>
|
|
/// </example>
|
|
public interface IEditModeTestYieldInstruction
|
|
{
|
|
/// <summary>
|
|
/// Whether or not the instruction expects a domain reload to occur.
|
|
/// </summary>
|
|
bool ExpectDomainReload { get; }
|
|
/// <summary>
|
|
/// Whether or not the instruction expects the Unity Editor to be in **Play Mode**.
|
|
/// </summary>
|
|
bool ExpectedPlaymodeState { get; }
|
|
/// <summary>
|
|
/// Used to define multi-frame operations performed when instantiating a yield instruction.
|
|
/// </summary>
|
|
/// <returns>Enumerable collection of operations to perform.</returns>
|
|
IEnumerator Perform();
|
|
}
|
|
}
|