Tôi đang viết một số trường hợp thử nghiệm trong một tệp .mt duy nhất chia sẻ các thủ tục thiết lập chung (và teardown). Tôi đã hy vọng sẽ thấy một cái gì đó giống như của JUnit @Before
/@After
, nhưng không có gì từ gói MUnit nhảy ra ngoài với tôi rằng điều đó sẽ thực hiện được điều này. Nói một cách trung thực, tài liệu về gói MUnit tốt hơn một chút so với tài liệu MUnit của Wolfram Workbench, nhưng nó cũng quá xa. Instructions on viewing the MUnit package.Tìm kiếm một cái gì đó giống như của JUnit @Before/@After trong MUnit
Vì vậy, trước khi tôi phát minh lại bánh xe, tôi nghĩ tôi sẽ kiểm tra xem tôi có bỏ sót thứ gì đó trong MUnit hoặc nếu có ai có mẫu hoạt động tốt?
Vì vậy, dựa trên Leonid Shifrin ban đầu câu trả lời (anh được cập nhật câu trả lời của mình trong khi tôi đặt này với nhau) đây là (là) tôi đang ở đâu (là) tại ...
TestPlus.mt
(* Mathematica Test File *)
(* x is a global value *)
x=0;
SetUp[] := Module[{}, x=1;];
TearDown[] := Module[{}, x=0;];
(* test SetUp[] *)
SetUp[];
Test[x, 1, TestID->"SetUp-20120103-F2U9V6"]
(* test TearDown[] *)
TearDown[];
Test[x, 0, TestID->"TearDown-20120103-O4R6M7"]
(* test plus --contrived tests-- *)
SetUp[];
Test[x+0, 1, TestID->"Plus-20120103-S5D9X6"]
TearDown[];
SetUp[];
Test[x+1, 2, TestID->"Plus-20120103-D7Q3E0"]
TearDown[];
SetUp[];
Test[x+2, 3, TestID->"Plus-20120103-F0S4P9"]
TearDown[];
Được rồi tôi cập nhật câu hỏi của tôi với một ví dụ khập khiễng về những gì tôi nghĩ bạn đang nói về. Bây giờ, tôi thấy những gì bạn đang nói về. Cảm ơn – mmorris
@mmorris Cảm ơn bạn đã chấp nhận. Cập nhật của bạn thực sự là những gì tôi có nghĩa là trong câu trả lời ban đầu của tôi. Bản cập nhật của tôi chỉ để cho thấy làm thế nào bạn có thể giảm số lượng mã boilerplate với nỗ lực tương đối tối thiểu. –
Vui lòng xem câu trả lời bên dưới. Cảm ơn Mike – mmorris