Package

com.spotify.scio

testing

Permalink

package testing

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. testing
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait BigtableMatchers extends SCollectionMatchers

    Permalink

    Trait with ScalaTest Matchers for SCollections specific to Bigtable output.

  2. trait PipelineSpec extends FlatSpec with Matchers with SCollectionMatchers with PipelineTestUtils with RunEnforcementJobTest

    Permalink

    Trait for unit testing pipelines.

    Trait for unit testing pipelines.

    A simple test might look like this:

    class SimplePipelineTest extends PipelineSpec {
      "A simple pipeline" should "sum integers" in {
        runWithContext { sc =>
          sc.parallelize(Seq(1, 2, 3)).sum should containSingleValue (6)
        }
      }
    }
  3. trait PipelineTestUtils extends AnyRef

    Permalink

    Trait with utility methods for unit testing pipelines.

  4. trait RunEnforcementJobTest extends FlatSpec

    Permalink

    Trait that enforces JobTest.Builder.run is called.

  5. trait SCollectionMatchers extends AnyRef

    Permalink

    Trait with ScalaTest Matchers for SCollections.

  6. trait ScioIOSpec extends FlatSpec with PipelineSpec

    Permalink

    Trait for unit testing ScioIO.

  7. implicit final class TestStreamScioContext extends AnyVal

    Permalink

    Enhanced version of ScioContext with streaming methods.

Value Members

  1. object JobTest

    Permalink

    Set up a Scio job for end-to-end unit testing.

    Set up a Scio job for end-to-end unit testing. To be used in a PipelineSpec. For example:

    import com.spotify.scio.testing._
    
    class WordCountTest extends PipelineSpec {
    
      // Mock input data, mock distributed cache and expected result
      val inData = Seq("a b c d e", "a b a b")
      val distCache = Map(1 -> "Jan", 2 -> "Feb", 3 -> "Mar")
      val expected = Seq("a: 3", "b: 3", "c: 1", "d: 1", "e: 1")
    
      // Test specification
      "WordCount" should "work" in {
        JobTest("com.spotify.scio.examples.WordCount")
        // Or the type safe version
        // JobTest[com.spotify.scio.examples.WordCount.type]
    
          // Command line arguments
          .args("--input=in.txt", "--output=out.txt")
    
          // Mock input data
          .input(TextIO("in.txt"), inData)
    
          // Mock distributed cache
          .distCache(DistCacheIO("gs://dataflow-samples/samples/misc/months.txt"), distCache)
    
          // Verify output
          .output(TextIO("out.txt")) { actual => actual should containInAnyOrder (expected) }
    
          // Run job test
          .run()
      }
    }
  2. def testStreamOf[T](implicit arg0: ClassTag[T]): Builder[T]

    Permalink

    Create a TestStream.Builder instance.

Inherited from AnyRef

Inherited from Any

Ungrouped