ทำไม Scalatest ถึงสามารถใช้ผ่าน Junit ใน Scala ได้

ใน build.sbt ของการกำหนดตัวอย่างในหลักสูตร Scala ไลบรารีทดสอบที่ใช้คือ 4.10 มิถุนายน ไม่มีการเอ่ยถึง Scalatest

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

และยังอยู่ในคลาสทดสอบ scalatest สามารถอ้างอิงได้และการทดสอบสามารถเขียนได้โดยใช้ไวยากรณ์ scalatest จริง:

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

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

คำถาม: ฉันคิดว่าคอมไพเลอร์ Scala เข้าถึง scalatest ผ่านไลบรารี junit ถ้าเป็นเช่นนั้น อะไรคือเหตุผลในการฝัง scalest ใน Junit?


person Polymerase    schedule 01.04.2018    source แหล่งที่มา
comment
หลักสูตรสกาล่าแบบไหน?   -  person laughedelic    schedule 02.04.2018


คำตอบ (1)


ฉันตรวจสอบโปรเจ็กต์การมอบหมายจากหลักสูตรที่อ้างอิงแล้ว และจริงๆ แล้วมันมีโครงสร้างที่ค่อนข้างซับซ้อนโดยใช้วิธีที่เลิกใช้แล้วในการกำหนดบิลด์ในไฟล์ project/*.scala โดยขยาย Build

คำตอบสำหรับคำถามของคุณนั้นง่ายมาก: การพึ่งพาสเกลทดสอบถูกกำหนดใน project/CommonBuild.scala และเพิ่มไปยังบิลด์ใน project/StudentBuildLike.scala ดังนั้นจึงไม่ใช่เรื่องมหัศจรรย์ คุณกำลังใช้สกาเทสต์ปกติและตัวรันการทดสอบแบบกำหนดเอง (ดู project/ScalaTestRunner.scala)

person laughedelic    schedule 03.04.2018
comment
โอ้ การพึ่งพาที่ขยายขนาดที่สุดนั้นกระจัดกระจายอยู่ในเขาวงกตของคำจำกัดความบิลด์ SBT หวังว่าผู้เขียนหลักสูตรจะปรับปรุง build.sbt ให้ทันสมัย - person Polymerase; 03.04.2018
comment
ใช่. สิ่งนี้อาจถูกแยกออกเป็นปลั๊กอิน sbt บำรุงรักษาง่ายกว่า ลดความยุ่งยากและความสับสนให้กับนักเรียน แต่ฉันเดาว่ามันได้ผล แล้วทำไมต้องเปลี่ยนล่ะ?... - person laughedelic; 03.04.2018
comment
เหตุใดจึงมีการเปลี่ยนแปลง? ชื่อของหลักสูตรคือ SCALA SPECIALIZATION นี่เป็นเหตุผลที่เพียงพอในความคิดของฉัน - person Polymerase; 03.04.2018