2009-07-04 15 views
5

Herhangi bir kişi bir Mathematica dizüstü bilgisayar içindeki birim test kodu için bir model önerebilir mi? Wolfram Workbench'deki ünite test altyapısına aşinayım, ancak normal GUI'de basit dizüstü bilgisayarlarda kullanılabilecek iyi bir yaklaşıma sahip olmak isterim.Bir Mathematica Defterinde birim testleri yazmak için iyi bir model nedir?

Aşağıda gösterildiği gibi basit bir "Bekle" işlevini kullanıyorum. Ama sorun şu ki, dizüstü bilgisayarı yeniden değerlendirmem ve hatalar için görsel olarak taramam gerekiyor. Testlerin bir listesini oluşturmanın veya sırayla deftere taramanın ve böyle bir listenin oluşturulmasının iyi bir yolu ne olurdu, böylece hepsi tek bir çağrıda değerlendirilebilir mi?

In[8]:= Expect[ description_, val_, expr_ ] := 
If[ 
    val == expr, 
    "ok", 
    StringJoin[ "ERROR: GOT UNEXPECTED VALUE ", ToString[expr], 
    " INSTEAD OF ", ToString[val] ] 
] 

In[9]:= Expect[ "test passes", True, True ] 
Out[9]= "ok" 

In[10]:= Expect[ "test fails", True, False ] 
Out[10]= "ERROR: GOT UNEXPECTED VALUE False INSTEAD OF True" 

cevap

3

Yani, yaptığım, sınamaların yapılıp yapılmadığına bağlı olarak doğru veya yanlış olarak değerlendiren ifadelerin bir listesini yapmaktır. Yüzlerce test olmadığından, genellikle 10'dan az olduğu için bu benim için iyi çalışıyor.

Eğer daha fazla otomatik olarak yapsaydım, hata ayıklamayı kolaylaştırdığı için muhtemelen Throw kullanırım.

Yani, yapardım: Bir Mathematica dizüstü benim kendi mini-test çerçevesi rulo karar

Expect[ description_, val_, expr_ ] := 
If[ 
    val != expr, 
    Throw[ 
     StringJoin[ "GOT UNEXPECTED VALUE ", ToString[expr], 
     " INSTEAD OF ", ToString[val] ] 
     , "assertion exception" 
    ] 
] 
İlgili konular