@Beta
  public <T> T Stub(
    @NamedParams({
      @NamedParam(value = "name", type = String.class),
      @NamedParam(value = "additionalInterfaces", type = List.class),
      @NamedParam(value = "defaultResponse", type = IDefaultResponse.class),
      @NamedParam(value = "verified", type = Boolean.class),
      @NamedParam(value = "useObjenesis", type = Boolean.class),
      @NamedParam(value = "mockMaker", type = IMockMakerSettings.class)
    })
      Map<String, Object> options,
    @DelegatesTo.Target
      Class<T> type,
    @DelegatesTo(strategy = Closure.DELEGATE_FIRST, genericTypeIndex = 0)
    @ClosureParams(SecondParam.FirstGenericType.class)
      Closure interactions) {
    throw invalidMockCreation();
  }
Creates a stub with the specified options, type, and interactions. If enclosed in a variable assignment, the
variable name will be used as the stub's name.

Example:

<pre>
  // type is Person.class, name is "myPerson", returns hard-coded values for property {@code name} and method {@code sing()}
  def person = Stub(Person, name: "myPerson") {
    name >> "Fred"
    sing() >> "Tra-la-la"
  }
</pre>

@param options options for creating the stub (see {@link org.spockframework.mock.IMockConfiguration} for available options})
@param type the interface or class type of the stub
@param interactions a description of the stub's interactions
@param <T> the interface or class type of the stub

@return a stub with the specified options, type, and interactions
spock-core/src/main/java/spock/mock/MockingApi.java