2015-12-07 6 views
0

Я новичок в Scala. Исходя из Java, я использую для группировки/объединения моих тестовых классов в наборах (JUnit) в иерархическом вопросе (сюиты в наборах).ScalaTest эквивалент номеров JUnit's?

Я ищу альтернативу этому в ScalaTest.

ответ

2

Любой люкс может содержать вложенные Suites. Они возвращаются из метода lifesyle inestedSuites. Вы можете использовать класс Suites, чтобы сделать это:

http://doc.scalatest.org/2.2.4/index.html#org.scalatest.Suites

Если вы хотите, чтобы отключить обнаружение вложенных сьютов, вы можете использовать @DoNotDiscover аннотацию:

http://doc.scalatest.org/2.2.4/index.html#org.scalatest.DoNotDiscover

0

Оба FunSpec и FreeSpec позволяют вложить столько, сколько захотите. Примеры из http://www.scalatest.org/user_guide/selecting_a_style:

import org.scalatest.FunSpec 

class SetSpec extends FunSpec { 

    describe("A Set") { 
    describe("when empty") { 
     it("should have size 0") { 
     assert(Set.empty.size == 0) 
     } 

     it("should produce NoSuchElementException when head is invoked") { 
     intercept[NoSuchElementException] { 
      Set.empty.head 
     } 
     } 
    } 
    } 

    // just add more describe calls 
} 

и

import org.scalatest.FreeSpec 

class SetSpec extends FreeSpec { 

    "A Set" - { 
    "when empty" - { 
     "should have size 0" in { 
     assert(Set.empty.size == 0) 
     } 

     "should produce NoSuchElementException when head is invoked" in { 
     intercept[NoSuchElementException] { 
      Set.empty.head 
     } 
     } 
    } 

    // add more - calls 
    } 

    // add more - calls 
} 
+1

Алексей, я думаю, вопрос заключается в том, чтобы иметь разные спецификации, такие как «SetSpec» и «ListSpec», и иметь возможность создавать набор под названием «CollectionsSpec». – Eric

+0

@ Эрик Да, но это единственный способ добиться гнездования с помощью JUnit (AFAIK). ScalaTest также позволяет использовать этот подход. –

Смежные вопросы