> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/zh-tw/1_developer_primer_intro/1-testing-expectations.md).

# 測試預期結果

本頁介紹我們在測試 Dynamo 新增程式碼時所預期的結果。

您已經有一個想要增加的新節點。真棒。現在該來做一些測試。這樣做有兩個原因。

1. 測試有助於找出沒有作用的地方。
2. 當某人變更了內容而弄壞節點時，應該也會讓測試失效。如此一來，讓測試失效的人就必須去修復它。如果這樣沒有讓測試失效，就表示主要是您要處理模型被破壞的使用者。

Dynamo 中的測試分為兩大類：單元測試和系統測試。

## 單元測試

盡可能不要進行單元測試。如果您建立了一個透過 C# zero touch 節點計算平方根的節點，則最好只測試該 DLL，並且讓 C# 直接呼叫該程式碼。單元測試甚至不該包含 Dynamo。

應該包含：

* 正面測試 (做正確的事情)。
* 負面測試 (即使給定不當輸入也不會中斷)。
* 迴歸測試 (有人在您的程式碼中發現錯誤時，請撰寫一個測試確保它不會重複發生)。

測試應該小巧、快速、可靠。大多數測試應該是單元測試。

## 系統測試

系統測試會在多個元件上運作，測試它們如何一起配合。這類測試應謹慎使用和設計。

為什麼？這類測試的執行成本很高。讓測試套件以越少延遲執行越好。

在撰寫系統測試時，首先要做的是查看[此](https://github.com/DynamoDS/Dynamo/blob/master/doc/system/Layer%20Diagram.pdf)圖表，找出您要涵蓋的子系統。

理想情況下會有一系列的漸進式測試，涵蓋越來越多的互動區塊，當測試開始失敗時，就可以很快找出問題所在。

需要系統測試的事項範例：

* 一種新類型的 Revit 節點，它會在追蹤中儲存多個元素，而非單一元素。
* 以不同方式顯示資料的新 Watch 節點。

不需要系統測試的事項範例：

* 新的數學節點。
* 字串處理資源庫。

系統測試應：

* 堅持正確的行為。
* 堅持沒有病態行為，例如沒有例外狀況。
