0Pricing
Scala for Backend Engineering & Functional Programming · Pelajaran

Gaya ScalaTest

FlatSpec dan FunSuite.

Gaya ScalaTest adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Scala for Backend Engineering & Functional Programming, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Scala for Backend Engineering & Functional Programming mencakup 4 pelajaran total.

Apa itu ScalaTest?

ScalaTest adalah kerangka kerja pengujian yang paling banyak digunakan untuk Scala. Fitur khasnya adalah tersedianya beberapa gaya pengujian, sehingga tim dapat memilih sintaks yang sesuai dengan latar belakang mereka.

Menambahkan Dependensi

Tambahkan ScalaTest sebagai dependensi pengujian di build.sbt. Lingkup % Test membuatnya tidak disertakan dalam artefak produksi Anda.

libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.18" % Test

Mengapa Ada Banyak Gaya?

Tim yang berbeda menyukai konvensi yang berbeda: pengguna berpengalaman xUnit menyukai FunSuite; tim yang berorientasi pada perilaku menyukai FlatSpec atau WordSpec. ScalaTest mendukung semuanya dalam satu mesin, sehingga Anda dapat memilih satu gaya per proyek demi konsistensi.

AnyFunSuite

AnyFunSuite menggunakan bentuk test("name") { ... }, yang sudah lazim bagi pengguna JUnit. Setiap blok test merupakan satu kasus pengujian.

import org.scalatest.funsuite.AnyFunSuite

class MathSuite extends AnyFunSuite {
  test("addition works") {
    assert(1 + 1 == 2)
  }

  test("multiplication works") {
    assert(2 * 3 == 6)
  }
}

AnyFlatSpec

AnyFlatSpec dibaca seperti spesifikasi: "A Stack" should "pop values" in { ... }. Subjek dan perilakunya membentuk kalimat yang mudah dibaca.

import org.scalatest.flatspec.AnyFlatSpec

class CalculatorSpec extends AnyFlatSpec {
  "A Calculator" should "add two numbers" in {
    assert(2 + 3 == 5)
  }

  it should "subtract two numbers" in {
    assert(5 - 2 == 3)
  }
}

should vs must

Dalam FlatSpec, Anda dapat menggunakan should, must, atau can sebagai kata kerja. Maknanya dapat dipertukarkan; tim memilih salah satunya demi konsistensi.

import org.scalatest.flatspec.AnyFlatSpec

class ParserSpec extends AnyFlatSpec {
  "A Parser" must "handle empty input" in {
    assert("".isEmpty)
  }
}

it dan they

Setelah menamai suatu subjek, gunakan it (atau they) untuk menambahkan perilaku lain bagi subjek yang sama tanpa mengulangi namanya.

import org.scalatest.flatspec.AnyFlatSpec

class ListSpec extends AnyFlatSpec {
  "A List" should "report its size" in {
    assert(List(1, 2, 3).size == 3)
  }
  it should "reverse correctly" in {
    assert(List(1, 2).reverse == List(2, 1))
  }
}

AnyFunSpec

AnyFunSpec mengelompokkan pengujian dengan blok describe bertingkat dan klausa it, sehingga keluarannya hierarkis dan mudah dibaca.

import org.scalatest.funspec.AnyFunSpec

class SetSpec extends AnyFunSpec {
  describe("A Set") {
    describe("when empty") {
      it("has size 0") {
        assert(Set.empty[Int].size == 0)
      }
    }
  }
}

Pengujian Tertunda dan Diabaikan

Tandai pengujian yang belum selesai sebagai pending, atau lewati satu pengujian dengan menggunakan ignore sebagai pengganti test/in. Keduanya menjaga suite tetap berhasil sekaligus menandakan adanya pekerjaan yang harus diselesaikan.

import org.scalatest.funsuite.AnyFunSuite

class WipSuite extends AnyFunSuite {
  test("feature not done") {
    pending
  }
  ignore("flaky test") {
    assert(false)
  }
}

Memilih Gaya

Panduan:

  • FunSuite — minimal, mirip xUnit, cocok untuk pengujian unit.
  • FlatSpec — kalimat perilaku yang mudah dibaca.
  • FunSpec/WordSpec — pengelompokan bertingkat bergaya spesifikasi.

Pilih satu gaya untuk setiap basis kode dan gunakan secara konsisten.

Menjalankan Pengujian

Jalankan semua pengujian dengan sbt test, atau satu suite dengan sbt "testOnly *CalculatorSpec". ScalaTest melaporkan nama dan hasil setiap pengujian.

sbt test
sbt "testOnly *CalculatorSpec"

Pemeriksaan Singkat

Uji pengetahuan Anda tentang gaya ScalaTest.

Rangkuman

Anda telah mempelajari gaya ScalaTest:

  • Tambahkan ScalaTest dengan lingkup % Test.
  • AnyFunSuite: blok test("...") { }.
  • AnyFlatSpec: subjek should perilaku in { }.
  • AnyFunSpec: describe/it bertingkat.
  • Pilih satu gaya per proyek; jalankan dengan sbt test.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Gaya ScalaTest” gratis?

Ya — teks lengkap “Gaya ScalaTest” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Scala for Backend Engineering & Functional Programming, upgrade ke CoddyKit PRO. Kursus Scala for Backend Engineering & Functional Programming mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Gaya ScalaTest”?

FlatSpec dan FunSuite. Kamu berlatih Scala for Backend Engineering & Functional Programming dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Scala for Backend Engineering & Functional Programming?

Tidak diperlukan pengalaman sebelumnya. Scala for Backend Engineering & Functional Programming di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Gaya ScalaTest” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Scala for Backend Engineering & Functional Programming ini?

Ya. Setiap pelajaran Scala for Backend Engineering & Functional Programming menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Gaya ScalaTest
  2. Matcher
  3. Pengujian Berbasis Properti
  4. Mocking dan Fixture
← Kembali ke Scala for Backend Engineering & Functional Programming