All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mockit.NonStrictExpectations Maven / Gradle / Ivy

There is a newer version: 2.5.0
Show newest version
/*
 * Copyright (c) 2006-2013 Rogério Liesenfeld
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit;

/**
 * An {@link Expectations} subclass where all expectations are non-strict.
 * 
 *
 * new NonStrictExpectations() {{
 *    mock1.expectedMethod(anyInt); result = 123; times = 1;
 *    MockedClass.allowedMethod(); result = new IOException();
 *    mock2.anotherAllowedMethod(1, "test"); returns("Abc", "xyz");
 * }};
 *
 * // Now exercise the tested code according to the recorded expectations.
 * 
*

* During the replay phase, invocations matching non-strict expectations can occur in any number and in any order. * For each of these invocations, the {@link #result} (return value or thrown error/exception) will be either a "no-op" * (doing nothing for constructors and {@code void} methods, or returning the default value appropriate to the return * type) or whatever was specified through a matching invocation executed in the record phase (matching on the parameter * values, optionally using {@linkplain #any argument matchers}). * Multiple expectations on the same method or constructor can be recorded, provided different arguments are used. *

* Invocations occurring during replay that don't match any recorded expectation are allowed, and can be verified later * (after having exercised the code under test) through {@link Verifications} blocks. *

* A lower/upper limit or an exact number of expected invocations can be specified for each recorded expectation, * by assigning the appropriate {@link #minTimes}, {@link #maxTimes}, or {@link #times} field just after recording the * expectation. *

* In the * Tutorial * * @see #NonStrictExpectations() * @see #NonStrictExpectations(Object...) * @see #NonStrictExpectations(Integer, Object...) */ public abstract class NonStrictExpectations extends Expectations { /** * Identical to the corresponding super-constructor {@link Expectations#Expectations()}, except that all expectations * recorded will be non-strict. * * @see #NonStrictExpectations(Object...) * @see #NonStrictExpectations(Integer, Object...) */ protected NonStrictExpectations() {} /** * Identical to the corresponding super-constructor {@link Expectations#Expectations(Object...)}, except that all * expectations recorded will be non-strict. *

* In the * Tutorial * * @see #NonStrictExpectations() * @see #NonStrictExpectations(Integer, Object...) */ protected NonStrictExpectations(Object... classesOrObjectsToBePartiallyMocked) { super(classesOrObjectsToBePartiallyMocked); } /** * Identical to the corresponding super-constructor {@link Expectations#Expectations(Integer, Object...)}, except * that all expectations recorded will be non-strict. *

* The effect of specifying a number of iterations larger than 1 (one) is equivalent to multiplying by that number * the lower and upper invocation count limits for each invocation inside the expectation block. * Note that by default the invocation count range for a non-strict expectation is [0, ∞), that is, a lower limit of * 0 (zero) and no upper limit, so the number of iterations will only be meaningful if a positive and finite limit is * explicitly specified for the expectation. *

* In * the Tutorial * * @param numberOfIterations the positive number of iterations for the whole set of invocations recorded inside the * block; when not specified, 1 (one) iteration is assumed * * @see #NonStrictExpectations() * @see #NonStrictExpectations(Object...) */ protected NonStrictExpectations(Integer numberOfIterations, Object... classesOrObjectsToBePartiallyMocked) { super(classesOrObjectsToBePartiallyMocked); getCurrentPhase().setNumberOfIterations(numberOfIterations); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy