org.scalatest

trait PrivateMethodTester

[source: org/scalatest/PrivateMethodTester.scala]

trait PrivateMethodTester
extends AnyRef
Trait that facilitates the testing of private methods. To test a private method, mix in trait PrivateMethodTester and create a PrivateMethod object, like this:
 val decorateToStringValue = PrivateMethod[String]('decorateToStringValue)
 

The type parameter on PrivateMethod, in this case String, is the result type of the private method you wish to invoke. The symbol passed to the PrivateMethod.apply factory method, in this case 'decorateToStringValue, is the name of the private method to invoke. To test the private method, use the invokePrivate operator, like this:

 targetObject invokePrivate decorateToStringValue(1)
 
Here, targetObject is a variable or singleton object name referring to the object whose private method you want to test. You pass the arguments to the private method in the parentheses after the PrivateMethod object. The result type of an invokePrivate operation will be the type parameter of the PrivateMethod object, thus you need not cast the result to use it. In other words, after creating a PrivateMethod object, the syntax to invoke the private method looks like a regular method invocation, but with the dot (.) replaced by invokePrivate. The private method is invoked dynamically via reflection, so if you have a typo in the method name symbol, specify the wrong result type, or pass invalid parameters, the invokePrivate operation will compile, but throw an exception at runtime.
Author
Bill Venners
Method Summary
implicit def anyRefToInvoker (target : AnyRef) : Invoker
Implicit conversion from AnyRef to Invoker, used to enable assertions testing of private methods.
Methods inherited from AnyRef
getClass, hashCode, equals, clone, toString, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized
Methods inherited from Any
==, !=, isInstanceOf, asInstanceOf
Class Summary
class Invocation [T](val methodName : scala.Symbol, val args : Any*) extends AnyRef
Class whose instances represent an invocation of a private method. Instances of this class contain the name of the private method (methodName) and the arguments to pass to it during the invocation (args). The type parameter, T, is the return type of the private method.
class Invoker (target : AnyRef) extends AnyRef
Class used via an implicit conversion to enable private methods to be tested.
class PrivateMethod [T](methodName : scala.Symbol) extends AnyRef
Represent a private method, whose apply method returns an Invocation object that records the name of the private method to invoke, and any arguments to pass to it when invoked. The type parameter, T, is the return type of the private method.
Object Summary
object PrivateMethod extends AnyRef
Contains a factory method for instantiating PrivateMethod objects.
Method Details
implicit def anyRefToInvoker(target : AnyRef) : Invoker
Implicit conversion from AnyRef to Invoker, used to enable assertions testing of private methods.
Parameters
target - the target object on which to invoke a private method.
Throws
NullPointerException - if target is null.


Copyright (C) 2001-2009 Artima, Inc. All rights reserved.