유닛 테스트를 작성할 때 오브젝트셋 검색이나 오브젝트 집계에 대한 스텁(canned answers)을 생성하여 코드가 작성하는 유닛 테스트 중 호출에 대한 응답을 지정하려면 { whenObjectSet }
을 "@foundry/functions-testing-lib"
에서 가져와야 합니다.
Copied!1 2 3 4 5 6 7 8 9 10
// "@foundry/ontology-api"에서 Objects를 가져옵니다. import { Objects } from "@foundry/ontology-api"; // 객체 타입을 검색하여 objectSet 변수에 할당합니다. const objectSet = Objects.search().objectType(); // myFunctions의 filterObjectSet 함수에 objectSet을 입력으로 주고, // 이 함수의 결과가 objectSet의 각 요소 s에서 s.prop.range()이 0 이상인 요소로 구성된 새로운 집합과 동일한지 확인합니다. expect(myFunctions.filterObjectSet(objectSet)) .toEqual(objectSet.filter(s => s.prop.range().gte(0)))
스텁을 사용하여 집계 호출에 대한 응답을 정의할 수 있습니다.
Copied!1 2 3 4
import { whenObjectSet } from "@foundry/functions-testing-lib" // 객체의 속성을 검색하여 합계를 구한 후 55로 설정합니다. whenObjectSet(Objects.search().objectType().sum(s => s.property)).thenReturn(55);
이는 Objects.search().objectType().sum(s => s.property))
가 실행될 때마다 결과가 55가 됨을 의미합니다.
또한 스텁을 사용하여 특정 오브젝트 검색에 대한 응답을 정의할 수도 있습니다.
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// 영어 코드 // import { whenObjectSet } from "@foundry/functions-testing-lib"; // 한국어 주석: "@foundry/functions-testing-lib"에서 "whenObjectSet"을 가져옵니다. import { whenObjectSet } from "@foundry/functions-testing-lib"; // 영어 코드 // whenObjectSet(Objects.search().objectType().orderBy().takeAsync(10)).thenReturn([employeeObj]) // 한국어 주석: 객체를 검색하고, 객체 유형을 설정하고, 정렬한 뒤 비동기적으로 10개의 결과를 가져옵니다. 그런 다음 employeeObj 배열을 반환합니다. whenObjectSet(Objects.search().objectType().orderBy().takeAsync(10)).thenReturn([employeeObj]) // 영어 코드 // await expect(myFunctions.aggregateSum(objectSet)).resolves.toEqual(65); // 한국어 주석: objectSet의 aggregateSum 함수를 실행하고 결과가 65와 동일한지 확인합니다. await expect(myFunctions.aggregateSum(objectSet)).resolves.toEqual(65);
이것은 특정 오브젝트 검색 집계가 실행될 때마다, 속성 합계가 65로 계산된다는 것을 의미합니다.