Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Question Is there a way to make time pass in a test?

Discussion in 'Testing & Automation' started by AcademyOfFetishes, Apr 21, 2019.

  1. AcademyOfFetishes

    AcademyOfFetishes

    Joined:
    Nov 16, 2018
    Posts:
    219
    Although this test takes ~3 seconds to run, it still fails:

    Code (CSharp):
    1.     [UnityTest]
    2.     public IEnumerator time_passes()
    3.     {
    4.         var originalTime = Time.time;
    5.         for (int i = 0; i < 500; i++)
    6.         {
    7.             yield return null;
    8.         }
    9.         Assert.Greater(Time.time, originalTime);
    10.     }
    This is the output:

    Code (CSharp):
    1. Expected: greater than 0.283833772f
    2.   But was:  0.283833772f
    Is there a way in an editor test to make time pass?
     
  2. Warnecke

    Warnecke

    Unity Technologies

    Joined:
    Nov 28, 2017
    Posts:
    92
    liortal likes this.
  3. AcademyOfFetishes

    AcademyOfFetishes

    Joined:
    Nov 16, 2018
    Posts:
    219
  4. liortal

    liortal

    Joined:
    Oct 17, 2012
    Posts:
    3,562
    What are you trying to test exactly? maybe asserting against Time.time isn't the best solution for you.