2012-05-07 25 views
44

Bir birim testler paketinin etrafında, doldurulması gereken boşluklarla düzenlenmiş olan Scala Koans aracılığıyla çalışmaya başladım. (Bu fikir, benzer bir Ruby Koans projesinden sonra modellenmiştir.) Bir test yürüten sbt aracını başlatın.Scala Koans'da === (üç eşittir) operatörü nedir?

 
[info] + ***************************************** 
[info] + 
[info] + 
[info] + 
[info] + Please meditate on koan "None equals None" of suite "AboutEmptyValues" 
[info] + 
[info] + 
[info] + 
[info] + ***************************************** 

... ve böylece bu birim testi bakmak gidip diyor: ve admonishes

 
test("None equals None") { 
    assert(None === __) 
} 

... ve meditasyon sonra, size doldurmak gerektiğini fark bu şekilde boş:

 
test("None equals None") { 
    assert(None === None) 
} 

... ve daha sonra bir sonraki ünite testine geçer.

Sorumalarım yine === numaralı telefonu nedir? Onu hiçbir yerde bulamıyorum. Bu Scala Koans projesinde tanımlanan bir DSL operatörü mü? Yoksa ScalaTest çerçevesinin bir parçası mı? Ya da Scala'da uygun mu?

cevap

70

Bu, üçlü eşittir, ScalaTest numaralı operatördür. Bu sayfaya bir göz atın: Getting Started with FunSuite.

ScalaTest Eğer Scala'nın iddiası sözdizimi kullanmanızı sağlar, ancak üçlü daha iyi hata iletileri vermek operatörü (===) eşittir tanımlar: O diyor. Aşağıdaki kod size bir onaylama işlemi başarısız olduğunu sadece belirten bir hata verecekti:

assert(1 == 2) 

size daha bilgilendirici hata mesajı verecekti yerine üçlü Eşit işaretlerini kullanarak, "1 eşit 2 vermedi":

assert(1 === 2)