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" % TestMengapa 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: bloktest("...") { }.AnyFlatSpec: subjekshouldperilakuin { }.AnyFunSpec:describe/itbertingkat.- 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
- Gaya ScalaTest
- Matcher
- Pengujian Berbasis Properti
- Mocking dan Fixture