2009-07-04 25 views
5

Ai có thể đề xuất mẫu cho mã thử nghiệm đơn vị trong máy tính xách tay Mathematica? Tôi quen thuộc với cơ sở hạ tầng kiểm tra đơn vị trong Wolfram Workbench, nhưng tôi cũng muốn có một cách tiếp cận tốt có thể được sử dụng trong các sổ ghi chép đơn giản trong GUI thông thường.Mô hình tốt để viết các bài kiểm tra đơn vị trong một Notebook Notebook là gì?

Tôi đã sử dụng chức năng "Mong đợi" đơn giản như minh họa bên dưới. Nhưng vấn đề là sau đó tôi phải đánh giá lại máy tính xách tay và quét qua nó một cách trực quan cho các lỗi. Điều gì sẽ là một cách hay để tạo danh sách các bài kiểm tra, hoặc luân phiên để quét qua sổ ghi chép và tạo ra một danh sách như vậy, để tất cả chúng có thể được đánh giá trong một cuộc gọi đơn lẻ?

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" 

Trả lời

3

Vì vậy, những gì tôi làm chỉ đơn giản là tạo một danh sách các câu lệnh đánh giá đúng hoặc sai, tùy thuộc vào việc các bài kiểm tra có vượt qua hay không. Vì không có hàng trăm bài kiểm tra nhưng thường ít hơn 10, điều này làm việc tốt cho tôi.

Nếu tôi làm điều đó một cách tự nhiên hơn, tôi có thể sử dụng Throw, để đơn giản hóa việc gỡ lỗi.

Vì vậy, tôi muốn làm:

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

tôi quyết định cuộn của riêng khuôn khổ mini-thử nghiệm của tôi trong một máy tính xách tay Mathematica. Ngoài việc chạy thử nghiệm đơn vị, nó hỗ trợ thiết lập và chức năng teardown.

https://github.com/chrisoei/Mathematica-Test-Runner

Các vấn đề liên quan