2016-08-28 9 views
6

Aşağıdaki sınama sınıf vardır: bu test yöntemi ilebulunamadı: değeri assertThrows

import org.scalatest.FunSuite 

@RunWith(classOf[JUnitRunner]) 
class NodeScalaSuite extends FunSuite { 

:

test("Now doesn't terminate future that's not done") { 
    val testFuture: Future[Int] = Future{ 
     wait(1000) 
     10 
    } 
    assertThrows[NoSuchElementException]{ 
     testFuture.now 
    } 
    } 

bu hatayı alıyorum:

not found: value assertThrows 

ben baktım ScalaTest belgelerinden http://doc.scalatest.org/3.0.0/#org.scalatest.FunSuite ve benimkine benzeyen kodlar iyi çalışıyor gibi görünüyor.

Sorun nedir?

+0

Hangi süreyi kullanıyorsunuz? Aynı problemi '2.2.6' ile (ScalaMock uyumluluğu için) yaşıyorum. – ZbyszekKr

cevap

13

Bu problemle de karşı karşıya kaldım - ama yorumlarda da belirtildiği gibi, kullandığım scala testinin sürümüne inmişti. assertThrows, 2.2.6'dan sonra kullanıma sunulmadı - 3.0.0'a yükseltmek (eğer yapabiliyorsanız) mümkün kılacak: Başvurulan belgelerin eski sürümüne buradan bakın: http://doc.scalatest.org/2.2.6/#org.scalatest.FunSuite

Yükseltme yapamıyorsanız, istisnalar için önceki yol intercept yöntemini kullanıyordu:

test("Invoking head on an empty Set should produce NoSuchElementException") { 
    intercept[NoSuchElementException] { 
     Set.empty.head 
    } 
    }