What should I use instead of fit and fdescribe in Jasmine 3?

As per your link to fit docs

fit will focus on a test or a set of them.

so if you have 5 tests, 3it and 2fit, only the 2 with fit will run by Jasmine.

ERROR: 'DEPRECATION: fit and fdescribe will cause your suite to report an 'incomplete' status in Jasmine 3.0'

ERROR --> WARNING: Is telling you that only fit'S will run, therefore an incomplete test.

Thanks.


They have fixed the warning. I am using jasmine v3.3.1 and I don't see such a message:

Console output showing the jasmine test run for the sample code below. Only the 'fit' block in the 'fdescribe' definition as well as the 'fit' block in the regular 'describe' definition got executed.

So we can still use fit and fdescribe, please read the below code and its comments. It's tested and easy to understand.

// If you want to run a few describes only, add 'f' so using focus only those
// 'fdescribe' blocks and their 'it' blocks get run
fdescribe("Focus description: I get run with all my it blocks", function () {
  it("1) it in fdescribe gets executed", function () {
    console.log("1) gets executed unless there's a fit within fdescribe");
  });

  it("2) it in fdescribe gets executed", function () {
    console.log("2) gets executed unless there's a fit within fdescribe");
  });

  // But if you add 'fit' in an 'fdescribe' block, only the 'fit' block gets run
  fit("3) only fit blocks in fdescribe get executed", function () {
    console.log("If there's a fit in fdescribe, only fit blocks get executed");
  });
});

describe("Regular description: I get skipped with all my it blocks", function () {
  it("1) it in regular describe gets skipped", function () {
    console.log("1) gets skipped");
  });

  it("2) it in regular describe gets skipped", function () {
    console.log("2) gets skipped");
  });

  // Will a 'fit' in a regular describe block get run? Yes!
  fit("3) fit in regular describe still gets executed", function () {
    console.log("3) fit in regular describe gets executed, too");
  });
});