JSPM

  • Created
  • Published
  • Downloads 166
  • Score
    100M100P100Q69185F
  • License ISC

A unit testing library for Roblox heavily inspired by xUnit from C#

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@rbxts/runit) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    Runit

    pronounced "R Unit"

    A unit testing library for Roblox heavily inspired by xUnit from C#

    Example

    src/scripts/run-tests.server.ts

    import { TestRunner } from "@rbxts/runit";
    import { ServerScriptService } from "@rbxts/services";
    
    const testRunner = new TestRunner(
      ServerScriptService.WaitForChild("Tests")
    );
    
    testRunner.run();

    src/tests/number-utility-test.ts

    import { Fact, Theory, InlineData, Assert } from "@rbxts/runit";
    
    function toNearestFiveOrTen(n: number): number {
      const nearestFive = round(n / 5) * 5;
      const lowerTen = floor(nearestFive / 10) * 10;
      const upperTen = lowerTen + 10;
    
      if (abs(n - lowerTen) <= abs(n - nearestFive))
        return lowerTen;
      else if (abs(n - upperTen) <= abs(n - nearestFive))
        return upperTen;
    
      return nearestFive;
    }
    
    class NumberUtilityTest {
      // tests one case
      @Fact
      public eightBecomesTen(): void {
        Assert.equal(10, toNearestFiveOrTen(8));
      }
    
      // tests multiple cases
      @Theory
      @InlineData(8, 10)
      @InlineData(14, 15)
      @InlineData(18, 20)
      @InlineData(3, 5)
      @InlineData(2, 0)
      public roundsToNearestFiveOrTen(input: number, expected: number): void {
        Assert.equal(expected, toNearestFiveOrTen(input));
      }
    }
    
    export = NumberUtilityTest;