كيف يقوم إطار عمل BDD "المواصفات" بعمل Scala؟
سؤال
أنا فقط بدأت مع Scala، وأنا أتساءل من ميزة اللغة التي تسمح لك بذلك:
"PersistentQueue" should {
"add and remove one item" in {
withTempFolder {
val q = new PersistentQueue(folderName, "work", Config.fromMap(Map.empty))
q.setup
q.length mustEqual 0
q.totalItems mustEqual 0
q.bytes mustEqual 0
q.journalSize mustEqual 0
q.add("hello kitty".getBytes)
q.length mustEqual 1
q.totalItems mustEqual 1
q.bytes mustEqual 11
q.journalSize mustEqual 32
new String(q.remove.get.data) mustEqual "hello kitty"
q.length mustEqual 0
q.totalItems mustEqual 1
q.bytes mustEqual 0
q.journalSize mustEqual 33
q.close
dumpJournal("work") mustEqual "add(11:0:hello kitty), remove"
}
}
}
هذا من اختبارات الوحدة لكيستريل.
ماذا يجري هنا؟ هل "PersistentQueue" should
يعني أنه تم تمديد فئة سلسلة Scala مع طريقة "يجب"، أو هل يحدث شيء آخر هنا؟ كان لدي نظرة سريعة من خلال وثائق SCALA ولكن لم أستطع معرفة ميزات اللغة التي يتم استخدامها لعينة التعليمات البرمجية هذه.
المحلول
يبدو أن الأساليب الضمنية التي تتم إضافتها إلى فئة السلسلة إلي. هذا المشنور لديه مظاهرة.
لا تنتمي إلى StackOverflow