كيف يقوم إطار عمل BDD "المواصفات" بعمل Scala؟

StackOverflow https://stackoverflow.com/questions/590002

  •  09-09-2019
  •  | 
  •  

سؤال

أنا فقط بدأت مع 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 ولكن لم أستطع معرفة ميزات اللغة التي يتم استخدامها لعينة التعليمات البرمجية هذه.

هل كانت مفيدة؟

المحلول

يبدو أن الأساليب الضمنية التي تتم إضافتها إلى فئة السلسلة إلي. هذا المشنور لديه مظاهرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top