If you replace a parameter within a 'shouldBeCalledWith' function call (or any of its variants), then that parameter will not tested, but all other parameters not marked as ignored will still be tested. This give you more control over what should and should not be tested.

describe("When using the 'IgnoreParam' constant, it", () => {
  let context;

  it("should not test the param marked to be ignored.", function (done) {
    new Scenario(this)
      .mockThisFunction("DbProxy", "save", DbProxy)

      .withEntryPoint(context.entryPointObject, context.entryPointFunction)
      .withInputParams([context.inputParams])

      .shouldBeCalledWith("DbProxy", "save", [param1, Maddox.constants.IgnoreParam, param3])
      .doesReturnWithPromise("DbProxy", "save", Maddox.constants.EmptyResult)

      .test(function (err, response) {
        Maddox.compare.equal(err, undefined);
        Maddox.compare.equal(response, testContext.expectedResponse);
        done();
      }).catch(function (err) {
        done(err);
      });
  });
});