trait Explicitly extends AnyRef
Provides ScalaTest's “explicitly DSL,” which facilitates the
explicit specification of an Equality[T] or a Uniformity[T] where
Equality[T] is taken implicitly.
The Explicitly DSL can be used with the === and !== operators of Scalactic
as well as the should equal, be, contain, and
=== syntax of ScalaTest matchers.
If you want to customize equality for a type in general, you would likely want to place an
implicit Equality[T] for that type in scope (or in T's companion object). That implicit
equality definition will then be picked
up and used when that type is compared for equality with the equal, be, and
contain matchers in ScalaTest tests and with
=== in both tests and production code.
If you just want to use a custom equality for a single comparison, however, you may prefer to pass it explicitly. For
example, if you have an implicit
Equality[String] in scope, you can force a comparison to use the default equality with this syntax:
// In production code: if ((result === "hello")(decided by defaultEquality)) true else false
// In tests: result should equal ("hello") (decided by defaultEquality)
The explicitly DSL also provides support for specifying a one-off equality that is based on a normalization. For
example, Scalactic offers a StringNormalizations trait that
provides methods such as trimmed and lowerCased that return
Normalization[String] instances that normalize by trimming and lower-casing, respectively. If you bring
those into scope by mixing in or importing the members of StringNormalizations, you could use the
explicitly DSL like this:
// In production code: if ((result === "hello")(after being lowerCased)) true else false
// In tests: result should equal ("hello") (after being lowerCased and trimmed)
If you prefer not to use English-like DSLs in your production code, you can alternatively
not use the Explicitly trait and instead write:
// To explicitly specify an Equality instance, just specify it: if ((result === "hello")(Equality.default)) true else false
// To base an Equality instance on a Uniformity, just // call toEquality on it: if ((result === "hello")(lowerCased.toEquality)) true else false
- Source
 - Explicitly.scala
 
- Alphabetic
 - By Inheritance
 
- Explicitly
 - AnyRef
 - Any
 
- Hide All
 - Show All
 
- Public
 - All
 
Type Members
- 
      
      
      
        
      
    
      
        
        class
      
      
        DecidedByEquality[A] extends Equality[A]
      
      
      
This class is part of the Scalactic “explicitly DSL”.
This class is part of the Scalactic “explicitly DSL”. Please see the documentation for
Explicitlyfor an overview of the explicitly DSL.Instances of this class are returned via the
decidedby<an Equality>syntax, and enablesafterBeingto be invoked on it. Here's an example, given anEquality[String]namedmyStringEquality:result should equal ("hello") (decided by myStringEquality afterBeing lowerCased) - 
      
      
      
        
      
    
      
        
        class
      
      
        DecidedWord extends AnyRef
      
      
      
This class is part of the Scalactic “explicitly DSL”.
This class is part of the Scalactic “explicitly DSL”. Please see the documentation for
Explicitlyfor an overview of the explicitly DSL. - 
      
      
      
        
      
    
      
        
        class
      
      
        DeterminedByEquivalence[T] extends Equivalence[T]
      
      
      
This class is part of the Scalactic “explicitly DSL”.
This class is part of the Scalactic “explicitly DSL”. Please see the documentation for
Explicitlyfor an overview of the explicitly DSL.Instances of this class are returned via the
decidedby<an Equivalence>syntax, and enablesafterBeingto be invoked on it. Here's an example, given anEquivalence[String]namedmyStringEquivalence:result should equal ("hello") (determined by myStringEquivalence afterBeing lowerCased) - 
      
      
      
        
      
    
      
        
        class
      
      
        DeterminedWord extends AnyRef
      
      
      
This class is part of the Scalactic “explicitly DSL”.
This class is part of the Scalactic “explicitly DSL”. Please see the documentation for
Explicitlyfor an overview of the explicitly DSL. - 
      
      
      
        
      
    
      
        
        class
      
      
        TheAfterWord extends AnyRef
      
      
      
This class is part of the Scalactic “explicitly DSL”.
This class is part of the Scalactic “explicitly DSL”. Please see the documentation for
Explicitlyfor an overview of the explicitly DSL. 
Value Members
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        !=(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        ##(): Int
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        ==(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        
        val
      
      
        after: TheAfterWord
      
      
      
This field enables syntax such as the following:
This field enables syntax such as the following:
result should equal ("hello") (after being lowerCased) ^ - 
      
      
      
        
      
    
      
        final 
        def
      
      
        asInstanceOf[T0]: T0
      
      
      
- Definition Classes
 - Any
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        clone(): AnyRef
      
      
      
- Attributes
 - protected[java.lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @native() @throws( ... )
 
 - 
      
      
      
        
      
    
      
        
        val
      
      
        decided: DecidedWord
      
      
      
This field enables syntax such as the following:
This field enables syntax such as the following:
result should equal ("hello") (decided by defaultEquality) ^ - 
      
      
      
        
      
    
      
        
        val
      
      
        determined: DeterminedWord
      
      
      
This field enables syntax such as the following, given an
Equivalence[String]namedmyStringEquivalence:This field enables syntax such as the following, given an
Equivalence[String]namedmyStringEquivalence:result should equal ("hello") (determined by myStringEquivalence) ^ - 
      
      
      
        
      
    
      
        final 
        def
      
      
        eq(arg0: AnyRef): Boolean
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        equals(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        finalize(): Unit
      
      
      
- Attributes
 - protected[java.lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @throws( classOf[java.lang.Throwable] )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        getClass(): Class[_]
      
      
      
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        hashCode(): Int
      
      
      
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        isInstanceOf[T0]: Boolean
      
      
      
- Definition Classes
 - Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        ne(arg0: AnyRef): Boolean
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        notify(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        notifyAll(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @native()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        synchronized[T0](arg0: ⇒ T0): T0
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        toString(): String
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long, arg1: Int): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @native() @throws( ... )