This class allows to express wide range of cases in an expression. You can use it with setups or verifies methods.

Example


const value = 'value';
const object = new Mock<Function>()
.setup(instance => instance(1))
.returns(value)
.setup(instance => instance(It.Is(param => param > 0 && param < 2))
.returns(value)
.setup(instance => instance(It.IsAny())
.returns(value)
.object();

const actual = object(1);

expect(actual).toBe(value);

This class could be used not only for args matching, but also for function names, property names and so on.

Example


const object = new Mock<ITestObject>()
// the expression dynamically checks the property name that is being read
.setup(instance => It.Is((expression: GetPropertyExpression) => expression.name === 'property'))
.returns(value)
.object();

const object = new Mock<ITestObject>()
//denis any write operation on the property
.setup(instance => { instance.property = It.IsAny()})
// true - allow, false - deny
.returns(false)
.object();

const object = new Mock<ITestObject>()
.setup(instance => It.Is((expression: NamedMethodExpression) => expression.name === 'methodName' && expression.args[0] === 1))
.returns(value)
.object();

// how to use with verify
mock.verify(instance => instance.method(It.Is(a => a === 2)));

Type Parameters

  • P

Hierarchy

  • It

Constructors

Properties

Methods

Constructors

Properties

predicate: IPredicate<P>

Methods

  • This factory method returns an expression that matches custom cases.

    Example


    const value = 'value';
    const object = new Mock<Function>()
    .setup(instance => instance(It.Is(param => param > 0 && param < 2))
    .returns(value)
    .object();

    const actual = object(only_values_between_0_and_2_will_trigger_the_setup);

    expect(actual).toBe(value);

    Type Parameters

    • T

    Parameters

    Returns any

  • This factory method returns a wildcat expression that matches any value.

    Example


    const value = 'value';
    const object = new Mock<Function>()
    .setup(instance => instance(It.IsAny())
    .returns(value)
    .object();

    const actual = object(any_value_will_trigger_the_setup);

    expect(actual).toBe(value);

    Type Parameters

    • T

    Returns any

Generated using TypeDoc