constructor() {
    super();
    /**
     * Mocks are not type-checkable. To reduce burden on tests that are type
     * checked, this is typed as "?" to turn off JSCompiler checking.
     * TODO(user): Enable a type-checked mocking library.
     * @type {?}
     */
    this.mockControl = null;

    /** @type {?MockClock} */
    this.mockClock = null;

    /** @private {boolean} */
    this.shouldMakeMockControl_ = false;

    /** @const {!DebugConsole} */
    this.console = Environment.console_;

    /** @const {!PropertyReplacer} */
    this.replacer = new PropertyReplacer();
  }
JsUnit environments allow developers to customize the existing testing
lifecycle by hitching additional setUp and tearDown behaviors to tests.

Environments will run their setUp steps in the order in which they
are instantiated and registered. During tearDown, the environments will
unwind the setUp and execute in reverse order.

See http://go/jsunit-env for more information.