Kok Scalatest bisa digunakan lewat Junit di Scala

Dalam build.sbt Contoh Penugasan dalam kursus Scala, pustaka pengujian yang digunakan adalah junit 4.10. Scalatest tidak disebutkan.

libraryDependencies += "junit" % "junit" % "4.10" % Test

Namun di kelas pengujian scalatest dapat direferensikan dan pengujian dapat ditulis menggunakan sintaks scalatest yang sebenarnya:

import org.scalatest.FunSuite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner

@RunWith(classOf[JUnitRunner])
class ListsSuite extends FunSuite with Matchers {
  ...etc...
}

Pertanyaan: Saya kira kompiler Scala mengakses scalatest melalui perpustakaan junit. Jika demikian, apa alasan untuk menanamkan skalatest di junit?


person Polymerase    schedule 01.04.2018    source sumber
comment
Kursus Scala yang mana?   -  person laughedelic    schedule 02.04.2018
comment
Coursera: Pemrograman Fungsional dalam Spesialisasi Scala   -  person Polymerase    schedule 03.04.2018


Jawaban (1)


Saya memeriksa proyek penugasan dari kursus yang dirujuk dan sebenarnya memiliki struktur yang cukup rumit menggunakan cara yang tidak digunakan lagi untuk mendefinisikan build dalam file project/*.scala, memperluas Build.

Namun, jawaban atas pertanyaan Anda sederhana: ketergantungan skalatest ditentukan di project/CommonBuild.scala dan ditambahkan ke build di project/StudentBuildLike.scala. Jadi tidak ada keajaiban, Anda menggunakan skalatest normal dan test runner khusus (lihat project/ScalaTestRunner.scala).

person laughedelic    schedule 03.04.2018
comment
Oh, ketergantungan paling besar tersebar di labirin definisi build SBT. Semoga penulis kursus akan memodernisasi build.sbt - person Polymerase; 03.04.2018
comment
Ya. Ini bisa diekstraksi ke dalam plugin sbt. Lebih mudah dirawat, lebih sedikit boilerplate dan kebingungan bagi siswa. Tapi menurut saya itu berhasil, jadi mengapa harus diubah?... - person laughedelic; 03.04.2018
comment
Mengapa berubah? Nama kursusnya adalah SPESIALISASI SCALA. Ini alasan yang cukup menurut saya. - person Polymerase; 03.04.2018