Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

온톨로지 편집 결과 평가

객체 생성, 수정이나 삭제를 포함하는 Logic 함수의 평가 사례는 온톨로지 시뮬레이션에서 실행됩니다. 이 평가 과정에서 실제 온톨로지는 변경되지 않습니다. 이 보장을 별도 외부 시스템의 임의 부수 효과에까지 확대해서는 안 됩니다.

편집 결과를 평가하려면 TypeScript 사용자 정의 평가 함수나 중간 매개변수를 구성합니다. 평가 함수는 불리언 또는 숫자를 반환하며 여러 지표는 해당 자료형의 구조체로 반환할 수 있습니다. 평가 함수 추가 시 Code Repositories에서 작성하거나 기존 게시 함수를 선택합니다.

생성한 객체

새 객체는 시뮬레이션에만 있으므로 기존 사례 매개변수로 직접 지정할 수 없습니다. 식별 가능한 속성으로 검색하고 결과 속성을 검사합니다. 다음은 가상의 지원 티켓에서 요청자와 생성 날짜로 한 건을 찾아 분류를 확인하는 메서드 예시입니다. SupportTicket과 속성은 사용할 온톨로지의 생성 타입 및 API 이름에 맞춥니다.

@Function()
public async checkTicketWasCreated(
    expectedRequester: string,
    expectedDate: LocalDate,
    expectedClassification: string,
): Promise<boolean> {
    const matches = Objects.search().supportTicket()
        .filter(ticket => ticket.ticketRequester.exactMatch(expectedRequester))
        .filter(ticket => ticket.ticketCreationDate.exactMatch(expectedDate))
        .all();

    if (matches.length !== 1) {
        return false;
    }

    return matches[0].classification === expectedClassification;
}

수정한 객체

원래 존재하는 객체는 평가 함수 입력으로 전달하여 시뮬레이션의 변경된 속성을 확인할 수 있습니다.

@Function()
public checkTicketClassification(
    ticket: SupportTicket,
    expectedClassification: string,
): boolean {
    return ticket.classification === expectedClassification;
}

삭제한 객체

삭제된 객체 자체를 평가 함수로 전달할 수는 없습니다. 객체 ID처럼 식별 가능한 값을 전달하고 조회 결과가 없는지 확인합니다.

@Function()
public async checkTicketWasDeleted(ticketId: string): Promise<boolean> {
    const count = await Objects.search().supportTicket()
        .filter(ticket => ticket.ticketId.exactMatch(ticketId))
        .count();
    return count === 0;
}