org.scalatest.verb.StringVerbBlockRegistration.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scalatest_2.9.0 Show documentation
Show all versions of scalatest_2.9.0 Show documentation
ScalaTest is a free, open-source testing toolkit for Scala and Java
programmers.
/*
* Copyright 2001-2009 Artima, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.scalatest.verb
import org.scalatest._
// Used to make an implicit conversion more specific. If there were ever another
// implicit (String, String, () => Unit) lying around in scope, it would clash with
// if the implicit was just based on that more general type. This is used in
// ShouldVerb, MustVerb, and CanVerb.
/**
* Class that provides a role-specific type for an implicit conversion used to support
* the registration of subject descriptions in WordSpec
and fixture.WordSpec
.
*
*
* For example, this class enables syntax such as the following in WordSpec
* and fixture.WordSpec
:
*
*
*
* "A Stack (when empty)" should { ...
* ^
*
*
* This should
method, which is provided in ShouldVerb
, needs an implicit parameter
* of type (String, String, () => Unit) => Unit
. Because the required type has no ScalaTest-specific
* types in it, it is possible that another implicit parameter of that same type could be in scope, which would
* cause a compile failure. Requiring an implicit parameter of the more specific StringVerbBlockRegistration
,
* which simply extends the needed type, (String, String, () => Unit) => Unit
, avoids this potential conflict.
*
* @author Bill Venners
*/
abstract class StringVerbBlockRegistration extends ((String, String, () => Unit) => Unit) {
/**
* Registers a subject description in WordSpec
and fixture.WordSpec
.
*
*
* For example, this class enables syntax such as the following in WordSpec
* and fixture.WordSpec
:
*
*
*
* "A Stack (when empty)" should { ...
* ^
*
*
*/
def apply(string: String, verb: String, block: () => Unit)
}