通常情況下,您需要在每次測試後進行某種清理。例如,清理數據庫。全局設置和拆卸功能
問題:
有沒有辦法使用單元測試庫時附上全球拆卸和安裝的功能呢? 它會變得更好,能夠定義around建議:
unittest.around((test){
//doing setup
test();
//doing cleanup
});
通常情況下,您需要在每次測試後進行某種清理。例如,清理數據庫。全局設置和拆卸功能
問題:
有沒有辦法使用單元測試庫時附上全球拆卸和安裝的功能呢? 它會變得更好,能夠定義around建議:
unittest.around((test){
//doing setup
test();
//doing cleanup
});
當然,錯誤需要先修復:-)
然後,你會這樣做,因爲賈斯汀說'使用非明確的函數,你可以明確上調。在我看來,這是提供最大靈活性的最佳方式,而不會讓單元測試庫受到大量複雜的設置/拆卸邏輯的阻礙。
如果你想要做的測試套件安裝/拆卸,你能做到這與組中的初始/最終的「試驗」:
group('test suite',() {
test('Set up suite',() { ... });
test('Test 1',() { ... });
...
test('Test n',() { ... });
test('Tear down suite',() { ... });
});
這並不理想,但它是一個解決方案。
值得指出的是,在內部,組實際上並未表示爲層次結構。我們所做的只是使用當前的setUp/tearDown函數來保存堆棧,以便我們可以將每個測試用例與適當的測試用例關聯起來,並將組名和測試名稱連接起來以形成測試用例的最終名稱。我們並沒有構建樹型數據結構,因此我們沒有一種隱式進行upcalls的好方法(我們可以快速創建閉合層,並將這些閉合層用作實際的setUp/tearDown函數,但這有點兒的fugly)。
你可以做手工,革蘭氏在錯誤暗示:
main() {
topSetup() {
// ...
}
setUp(topSetup);
group('group',() {
setUp(() {
topSetup();
// ...
});
test('test',() {
// ...
});
});
}
看起來不像。以下是Gram所說的內容:http://code.google.com/p/dart/issues/detail?id=8157提交功能請求? – 2013-02-24 06:40:07
謝謝Seth。我提出了一個請求。 – 2013-02-24 20:49:14