class JUnit3Suite extends TestCase with Suite with AssertionsForJUnit
A Suite
that is also a junit.framework.TestCase
.
A JUnit3Suite
may be run by either JUnit 3 (such as JUnit 3.8) or ScalaTest's runner. You write it the way
you write a JUnit 3 TestCase
. Tests are methods that start with test
, take no parameters, and
have a Unit
return type. You manage fixtures with methods setUp
and tearDown
.
Here's an example:
import org.scalatest.junit.JUnit3Suite import scala.collection.mutable.ListBuffer
class BlastFromThePastSuite extends JUnit3Suite {
var sb: StringBuilder = _ var lb: ListBuffer[String] = _
override def setUp(): Unit = { sb = new StringBuilder("ScalaTest is ") lb = new ListBuffer[String] }
def testEasy(): Unit = { // Uses JUnit-style assertions sb.append("easy!") assertEquals("ScalaTest is easy!", sb.toString) assertTrue(lb.isEmpty) lb += "sweet" }
def testFun(): Unit = { // Uses ScalaTest assertions sb.append("fun!") assert(sb.toString === "ScalaTest is fun!") assert(lb.isEmpty) } }
You can use either JUnit's assertions, inherited from TestCase
, or ScalaTest's, inherited from AssertionsForJUnit
.
When writing JUnit 3 tests in Scala, you should keep in mind that JUnit 3 will not run tests that have a return type other than
Unit
. Thus it is best to explicitly state the Unit
result type, like this:
def testGoodIdea(): Unit = { // result type will be Unit // ... }
Instead of this:
def testBadIdea() = { // result type will be inferred // ... }
If the testBadIdea
method ends in an expression that has a result type other than Unit
, the Scala
compiler will infer a result type to the testBadIdea
method to be the same non-Unit
type. As a "result,"
JUnit 3 will not discover or run the testBadIdea
method at all.
- Self Type
- JUnit3Suite
- Source
- JUnit3Suite.scala
- Alphabetic
- By Inheritance
- JUnit3Suite
- AssertionsForJUnit
- VersionSpecificAssertionsForJUnit
- Suite
- Serializable
- Assertions
- TripleEquals
- TripleEqualsSupport
- TestCase
- Test
- Assert
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new JUnit3Suite()
Type Members
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def !==[T](right: Spread[T]): TripleEqualsInvocationOnSpread[T]
- Definition Classes
- TripleEqualsSupport
- def !==(right: Null): TripleEqualsInvocation[Null]
- Definition Classes
- TripleEqualsSupport
- def !==[T](right: T): TripleEqualsInvocation[T]
- Definition Classes
- TripleEqualsSupport
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def ===[T](right: Spread[T]): TripleEqualsInvocationOnSpread[T]
- Definition Classes
- TripleEqualsSupport
- def ===(right: Null): TripleEqualsInvocation[Null]
- Definition Classes
- TripleEqualsSupport
- def ===[T](right: T): TripleEqualsInvocation[T]
- Definition Classes
- TripleEqualsSupport
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- macro def assert(condition: Boolean, clue: Any)(implicit prettifier: Prettifier, pos: Position): Assertion
- Definition Classes
- VersionSpecificAssertionsForJUnit → Assertions
- macro def assert(condition: Boolean)(implicit prettifier: Prettifier, pos: Position): Assertion
- Definition Classes
- VersionSpecificAssertionsForJUnit → Assertions
- macro def assertCompiles(code: String)(implicit pos: Position): Assertion
- Definition Classes
- Assertions
- macro def assertDoesNotCompile(code: String)(implicit pos: Position): Assertion
- Definition Classes
- Assertions
- def assertResult(expected: Any)(actual: Any)(implicit prettifier: Prettifier, pos: Position): Assertion
- Definition Classes
- Assertions
- def assertResult(expected: Any, clue: Any)(actual: Any)(implicit prettifier: Prettifier, pos: Position): Assertion
- Definition Classes
- Assertions
- def assertThrows[T <: AnyRef](f: => Any)(implicit classTag: ClassTag[T], pos: Position): Assertion
- Definition Classes
- Assertions
- macro def assertTypeError(code: String)(implicit pos: Position): Assertion
- Definition Classes
- Assertions
- macro def assume(condition: Boolean, clue: Any)(implicit prettifier: Prettifier, pos: Position): Assertion
- Definition Classes
- VersionSpecificAssertionsForJUnit → Assertions
- macro def assume(condition: Boolean)(implicit prettifier: Prettifier, pos: Position): Assertion
- Definition Classes
- VersionSpecificAssertionsForJUnit → Assertions
- def cancel(cause: Throwable)(implicit pos: Position): Nothing
- Definition Classes
- Assertions
- def cancel(message: String, cause: Throwable)(implicit pos: Position): Nothing
- Definition Classes
- Assertions
- def cancel(message: String)(implicit pos: Position): Nothing
- Definition Classes
- Assertions
- def cancel()(implicit pos: Position): Nothing
- Definition Classes
- Assertions
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def convertEquivalenceToAToBConstraint[A, B](equivalenceOfB: Equivalence[B])(implicit ev: <:<[A, B]): CanEqual[A, B]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- def convertEquivalenceToBToAConstraint[A, B](equivalenceOfA: Equivalence[A])(implicit ev: <:<[B, A]): CanEqual[A, B]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- def convertToCheckingEqualizer[T](left: T): CheckingEqualizer[T]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- implicit def convertToEqualizer[T](left: T): Equalizer[T]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- def countTestCases(): Int
- Definition Classes
- TestCase → Test
- def createResult(): TestResult
- Attributes
- protected[framework]
- Definition Classes
- TestCase
- def defaultEquality[A]: Equality[A]
- Definition Classes
- TripleEqualsSupport
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def execute(testName: String, configMap: ConfigMap, color: Boolean, durations: Boolean, shortstacks: Boolean, fullstacks: Boolean, stats: Boolean): Unit
- Definition Classes
- Suite
- def expectedTestCount(filter: Filter): Int
Returns the number of tests expected to be run by JUnit when
run
is invoked on thisSuite
.Returns the number of tests expected to be run by JUnit when
run
is invoked on thisSuite
.If
tagsToInclude
in the passedFilter
is defined, this class's implementation of this method returns 0. Else this class's implementation of this method returns the size of the set returned bytestNames
on the current instance.- Definition Classes
- JUnit3Suite → Suite
- def fail(cause: Throwable)(implicit pos: Position): Nothing
- Definition Classes
- Assertions
- def fail(message: String, cause: Throwable)(implicit pos: Position): Nothing
- Definition Classes
- Assertions
- def fail(message: String)(implicit pos: Position): Nothing
- Definition Classes
- Assertions
- def fail()(implicit pos: Position): Nothing
- Definition Classes
- Assertions
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getName(): String
- Definition Classes
- TestCase
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def intercept[T <: AnyRef](f: => Any)(implicit classTag: ClassTag[T], pos: Position): T
- Definition Classes
- Assertions
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def lowPriorityTypeCheckedConstraint[A, B](implicit equivalenceOfB: Equivalence[B], ev: <:<[A, B]): CanEqual[A, B]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def nestedSuites: IndexedSeq[Suite]
- Definition Classes
- Suite
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def pending: Assertion with PendingStatement
- Definition Classes
- Assertions
- def pendingUntilFixed(f: => Unit)(implicit pos: Position): Assertion with PendingStatement
- Definition Classes
- Assertions
- def rerunner: Option[String]
- Definition Classes
- Suite
- def run(testName: Option[String], args: Args): Status
Overrides to use JUnit 3 to run the test(s).
Overrides to use JUnit 3 to run the test(s).
- testName
an optional name of one test to run. If
None
, all relevant tests should be run. I.e.,None
acts like a wildcard that means run all relevant tests in thisSuite
.- args
the
Args
for this run- returns
a
Status
object that indicates when all tests and nested suites started by this method have completed, and whether or not a failure occurred.
- Definition Classes
- JUnit3Suite → Suite
- def run(arg0: TestResult): Unit
- Definition Classes
- TestCase → Test
- def run(): TestResult
- Definition Classes
- TestCase
- def runBare(): Unit
- Definition Classes
- TestCase
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def runNestedSuites(args: Args): Status
Throws
UnsupportedOperationException
, because this method is unused by this class, given this class'srun
method delegates to JUnit to run its tests.Throws
UnsupportedOperationException
, because this method is unused by this class, given this class'srun
method delegates to JUnit to run its tests.The main purpose of this method implementation is to render a compiler error an attempt to mix in a trait that overrides
runNestedSuites
. Because this trait does not actually userunNestedSuites
, the attempt to mix in behavior would very likely not work.- args
the
Args
for this run
- Attributes
- protected
- Definition Classes
- JUnit3Suite → Suite
- Exceptions thrown
UnsupportedOperationException
always.
- final def runTest(testName: String, args: Args): Status
Throws
UnsupportedOperationException
, because this method is unused by this class, given this class'srun
method delegates to JUnit to run its tests.Throws
UnsupportedOperationException
, because this method is unused by this class, given this class'srun
method delegates to JUnit to run its tests.The main purpose of this method implementation is to render a compiler error an attempt to mix in a trait that overrides
runTest
. Because this trait does not actually userunTest
, the attempt to mix in behavior would very likely not work.- testName
the name of one test to run.
- args
the
Args
for this run
- Attributes
- protected
- Definition Classes
- JUnit3Suite → Suite
- Exceptions thrown
UnsupportedOperationException
always.
- def runTest(): Unit
- Attributes
- protected[framework]
- Definition Classes
- TestCase
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def runTests(testName: Option[String], args: Args): Status
Throws
UnsupportedOperationException
, because this method is unused by this class, given this class'srun
method delegates to JUnit to run its tests.Throws
UnsupportedOperationException
, because this method is unused by this class, given this class'srun
method delegates to JUnit to run its tests.The main purpose of this method implementation is to render a compiler error an attempt to mix in a trait that overrides
runTests
. Because this trait does not actually userunTests
, the attempt to mix in behavior would very likely not work.- testName
an optional name of one test to run. If
None
, all relevant tests should be run. I.e.,None
acts like a wildcard that means run all relevant tests in thisSuite
.- args
the
Args
for this run
- Attributes
- protected
- Definition Classes
- JUnit3Suite → Suite
- Exceptions thrown
UnsupportedOperationException
always.
- def setName(arg0: String): Unit
- Definition Classes
- TestCase
- def setUp(): Unit
- Attributes
- protected[framework]
- Definition Classes
- TestCase
- Annotations
- @throws(classOf[java.lang.Exception])
- final val succeed: Assertion
- Definition Classes
- Assertions
- def suiteId: String
- Definition Classes
- Suite
- def suiteName: String
- Definition Classes
- Suite
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def tags: Map[String, Nothing]
Returns an empty
Map
, because tags are not supported by JUnit 3.Returns an empty
Map
, because tags are not supported by JUnit 3.- Definition Classes
- JUnit3Suite → Suite
- def tearDown(): Unit
- Attributes
- protected[framework]
- Definition Classes
- TestCase
- Annotations
- @throws(classOf[java.lang.Exception])
- final def testDataFor(testName: String, theConfigMap: ConfigMap = ConfigMap.empty): TestData
- Definition Classes
- JUnit3Suite → Suite
- def testNames: Set[String]
Returns the set of test names that will be executed by JUnit when
run
is invoked on an instance of this class, or the instance is passed directly to JUnit for running.Returns the set of test names that will be executed by JUnit when
run
is invoked on an instance of this class, or the instance is passed directly to JUnit for running.The iterator obtained by invoking
elements
on this returnedSet
will produce the test names in their natural order, as determined byString
'scompareTo
method. Nevertheless, this method is not consulted by JUnit when it runs the tests, and JUnit may run the tests in any order.- Definition Classes
- JUnit3Suite → Suite
- def toExceptionFunction(message: Option[String]): (StackDepthException) => Option[String]
If message or message contents are null, throw a null exception, otherwise create a function that returns the option.
If message or message contents are null, throw a null exception, otherwise create a function that returns the option.
- Definition Classes
- AssertionsForJUnit
- def toString(): String
- Definition Classes
- TestCase → AnyRef → Any
- def typeCheckedConstraint[A, B](implicit equivalenceOfA: Equivalence[A], ev: <:<[B, A]): CanEqual[A, B]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- implicit def unconstrainedEquality[A, B](implicit equalityOfA: Equality[A]): CanEqual[A, B]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def withClue[T](clue: Any)(fun: => T): T
- Definition Classes
- Assertions
Deprecated Value Members
- def conversionCheckedConstraint[A, B](implicit equivalenceOfA: Equivalence[A], cnv: (B) => A): CanEqual[A, B]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- Annotations
- @deprecated
- Deprecated
(Since version 3.1.0) The conversionCheckedConstraint method has been deprecated and will be removed in a future version of ScalaTest. It is no longer needed now that the deprecation period of ConversionCheckedTripleEquals has expired. It will not be replaced.
- def convertEquivalenceToAToBConversionConstraint[A, B](equivalenceOfB: Equivalence[B])(implicit ev: (A) => B): CanEqual[A, B]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- Annotations
- @deprecated
- Deprecated
(Since version 3.1.0) The convertEquivalenceToAToBConversionConstraint method has been deprecated and will be removed in a future version of ScalaTest. It is no longer needed now that the deprecation period of ConversionCheckedTripleEquals has expired. It will not be replaced.
- def convertEquivalenceToBToAConversionConstraint[A, B](equivalenceOfA: Equivalence[A])(implicit ev: (B) => A): CanEqual[A, B]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- Annotations
- @deprecated
- Deprecated
(Since version 3.1.0) The convertEquivalenceToBToAConversionConstraint method has been deprecated and will be removed in a future version of ScalaTest. It is no longer needed now that the deprecation period of ConversionCheckedTripleEquals has expired. It will not be replaced.
- def lowPriorityConversionCheckedConstraint[A, B](implicit equivalenceOfB: Equivalence[B], cnv: (A) => B): CanEqual[A, B]
- Definition Classes
- TripleEquals → TripleEqualsSupport
- Annotations
- @deprecated
- Deprecated
(Since version 3.1.0) The lowPriorityConversionCheckedConstraint method has been deprecated and will be removed in a future version of ScalaTest. It is no longer needed now that the deprecation period of ConversionCheckedTripleEquals has expired. It will not be replaced.
- val styleName: String
- Definition Classes
- Suite
- Annotations
- @deprecated
- Deprecated
(Since version 3.1.0) The styleName lifecycle method has been deprecated and will be removed in a future version of ScalaTest with no replacement.