이 페이지에서는 Dynamo에 추가되는 새 코드 테스트에 대해 무엇을 기대할 수 있는지 설명합니다.
자, 추가하려는 새 노드가 있다고 생각해 보겠습니다. 멋지죠. 이제 몇 가지 테스트를 추가할 차례입니다. 테스트를 추가하는 데에는 두 가지 이유가 있습니다.
이는 작동하지 않는 부분을 찾는 데 도움이 됩니다.
누군가 노드를 손상시키는 어떤 부분을 변경하면 테스트에 실패해야 합니다. 그러면 테스트 실패를 야기한 사람이 이 문제를 해결해야 합니다. 그러나 테스트에 실패하지 않는다면 이후 해당 문제로 인해 사용자의 모델이 손상되면 책임은 주로 여러분이 지게 됩니다.
Dynamo의 테스트는 크게 유닛 테스트와 시스템 테스트의 두 가지 유형으로 나뉩니다.
유닛 테스트는 가능한 한 적게 테스트해야 합니다. C# zero touch 노드를 통해 제곱근을 계산하는 노드를 빌드한 경우 유닛 테스트는 해당 DLL만 테스트하고 C#은 해당 코드로 직접 호출해야 합니다. 유닛 테스트에는 Dynamo가 포함되지 않아야 합니다.
유닛 테스트에는 다음 테스트를 포함해야 합니다.
정상 테스트(정상적인 상황에서 잘 작동하는지 확인)
비정상 테스트(잘못 입력할 경우 큰 오류가 발생하지 않는지 확인)
회귀 테스트(누군가 코드에서 버그를 발견하면 해당 버그가 재발하지 않도록 테스트 작성)
이러한 테스트는 소규모로 빠르게 실행되며 신뢰할 수 있어야 합니다. 대부분의 테스트는 유닛 테스트여야 합니다.
시스템 테스트는 여러 구성요소에 대해 작동하고 구성요소가 함께 얼마나 잘 작동하는지 테스트합니다. 따라서 신중하게 사용하고 작성해야 합니다.
그 이유는 무엇입니까? 실행하는 데 비용이 많이 듭니다. 대기 시간을 가능한 한 짧게 두고 테스트 도구 모음을 계속 실행해야 합니다.
시스템 테스트를 작성할 때 가장 먼저 해야 할 일은 이 다이어그램을 살펴보고 어떤 하위 시스템을 포함할지 파악하는 것입니다.
가장 좋은 방법은 상호 작용하는 블록 세트를 늘리면서 일련의 테스트를 점진적으로 실행하는 것입니다. 그래야 테스트에 실패하기 시작하면 문제가 어디서 발생했는지 매우 빠르게 찾을 수 있습니다.
시스템 테스트가 필요한 부분의 예:
단일 요소가 아닌 추적에 여러 요소를 저장하는 새로운 유형의 Revit 노드
데이터를 다르게 표시하는 새로운 감시 노드
시스템 테스트가 필요 없는 사항의 예:
새로운 수학 노드
문자열 처리 라이브러리
시스템 테스트는 다음과 같아야 합니다.
올바르게 작동하는지 확인
비정상적으로 작동하지 않는지 확인(예: 예외 없음)