org.scalatest.fixture.ConfigMapFixture.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.fixture
import org.scalatest._
/**
* Trait that when mixed into a fixture.Suite
passes
* the config map passed to runTest
as a fixture into each test.
*
*
* Here's an example in which tests just check to make sure "hello"
and "world"
* are defined keys in the config map:
*
*
*
* package org.scalatest.examples.fixture.configmapfixture
*
* import org.scalatest._
*
* class ExampleSpec extends fixture.FlatSpec with fixture.ConfigMapFixture with ShouldMatchers {
*
* "The config map" should "contain hello" in { configMap =>
* // Use the configMap passed to runTest in the test
* configMap should contain key "hello"
* }
*
* it should "contain world" in { configMap =>
* configMap should contain key "world"
* }
* }
*
*
*
* If you run this class without defining "hello"
and "world"
* in the confg map, the tests will fail:
*
*
*
* scala> new ExampleSpec execute
* ExampleSpec:
* The config map
* - should contain hello *** FAILED ***
* Map() did not contain key "hello" (:20)
* - should contain world *** FAILED ***
* Map() did not contain key "world" (:24)
*
*
*
* If you do define "hello"
and "world"
keys
* in the confg map, the tests will success:
*
*
*
* scala> new ExampleSpec execute (configMap = Map("hello" -> "hi", "world" -> "globe"))
* ExampleSpec:
* The config map
* - should contain hello
* - should contain world
*
*
* @author Bill Venners
*/
trait ConfigMapFixture { this: fixture.Suite =>
/**
* The type of the configMap
, which is Map[String, Any]
.
*/
type FixtureParam = Map[String, Any]
/**
* Invoke the test function, passing to the the test function the configMap
* obtained by invoking configMap
on the passed OneArgTest
.
*
*
* To enable stacking of traits that define withFixture(NoArgTest)
, this method does not
* invoke the test function directly. Instead, it delegates responsibility for invoking the test function
* to withFixture(NoArgTest)
.
*
*
* @param test the OneArgTest
to invoke, passing in the
* configMap
fixture
*/
def withFixture(test: OneArgTest) {
withFixture(test.toNoArgTest(test.configMap))
}
}