Модульный тест Spec2 не компилируется

Я написал медианную функцию и хочу добавить для нее несколько модульных тестов.

Так я написал это в spec2

class TestStats extends Specification {
  "Median function " should {
    "be None for an empty list" in { Stats.median([]) must beNone }
    "be the midpoint of an odd length list" in { Stats.median([1,2,3]) must_== Some(2)}
    "be the average of the two midpoints of an even length list" in { Stats.median([1,2,3,4])     must_== Some(2.5)}
  }
}

Однако он не компилируется с ошибкой No implicit view available from Option[Double] => org.specs2.execute.Result. в строке "be None....

Я не понимаю, почему он спрашивает об этом здесь. Я действительно должен написать имплицит для себя, чтобы сделать это сравнение?

Изменить Таким образом, проблема была чисто синтаксической - см. мой ответ ниже. Меня немного раздражает, что мне сообщили о синтаксической ошибке как о семантической ошибке, поэтому мне никогда не приходило в голову, что мои литералы списка были неправильными.


person Squidly    schedule 21.06.2012    source источник
comment
Не могли бы вы показать больше кода (включая импорт)? А что такое []? На первый взгляд ваш тест выглядит правильно.   -  person Christian    schedule 21.06.2012
comment
[], [1,2,3] и [1,2,3,4] являются недопустимым кодом Scala.   -  person Daniel C. Sobral    schedule 21.06.2012
comment
Кроме того, какова сигнатура типа Stats.median?   -  person Daniel C. Sobral    schedule 21.06.2012
comment
Это был чисто синтаксический вопрос.   -  person Squidly    schedule 21.06.2012


Ответы (1)


Очевидно, в последнее время я слишком долго занимался Python. Исправление синтаксиса литерала списка устраняет проблему:

class TestStats extends Specification {
  "Median function " should {
    "be None for an empty list" in { median(Nil) must_== None }
    "be the midpoint of an odd length list" in { median(List(1, 2, 3)) must_== Some(2) }
    "be the average of the two midpoints of an even length list" in { median(List(1, 2, 3, 4)) must_== Some(2.5) }
  }
}
person Squidly    schedule 21.06.2012
comment
Он даже скомпилировался с синтаксисом вашего другого списка (python?)? - person Christian; 21.06.2012
comment
Нет, я спрашивал, почему не компилируется - person Squidly; 21.06.2012
comment
Я имел в виду, что ожидал другой ошибки компилятора, чем вы получили :-) - person Christian; 22.06.2012