Способ, которым scala работает с атрибутами, немного забавен. Я думаю, что то, что вы пытаетесь сделать, должно быть выражено так:
@Test { val expected = classOf[ NullPointerException] }
def someTest {
// test code
}
Это немного впереди, но синтаксис для аннотаций в 2.8 изменился, чтобы быть таким же, как то, что вы первоначально опубликовали. Синтаксис, опубликованный Тристаном, верен в текущей стабильной версии, но он выдал мне ошибки, когда я обновил свой проект до ночного компилятора 2.8. Я предполагаю, что это связано с включением именованных аргументов и аргументов по умолчанию . Также есть обсуждение в списке рассылки Scala. Цитата Лукаса Ритца:
Также обратите внимание, что в 2.8.0 синтаксис для аннотаций Java больше не будет использовать имя-значение пары, но вместо этого именованные аргументы, то есть
@ann {val x = 1, val y = 2} ==> @ann (x = 1, y = 2)
Вы также можете попробовать спецификации с:
class mySpec extends SpecificationWithJUnit {
"this expects an exception" in {
myCode must throwA[NullPointerException]
}
}
Эриком.