@Override
  @Beta
  public <T> T Spy(Class<T> type) {
    throw invalidMockCreation();
  }
Creates a spy with the specified type. If enclosed in a variable assignment, the variable name will be
used as the spy's name.

Example:

<pre>
  def person = Spy(Person) // type is Person.class, name is "person"
</pre>

@param type the class type of the spy
@param <T> the class type of the spy

@return a spy with the specified type
spock-core/src/main/java/spock/mock/MockingApi.java