1
mxunit에서 구조체 배열을 반환하는 함수를 테스트하는 가장 좋은 방법은 무엇입니까? 지금 나는 이런 식으로하고 있어요.mxunit에서 구조체 배열 검사
var actual = variables.pbj.getFunctions(); //returns [{name="getAccountNumber", value="0"},{name="getAccountName", value=""}]
var found = false;
//look for get account number
for(var i = 1; i lte arrayLen(actual); i ++){
if(structKeyExists(actual[i],"name") && actual[i].name eq "getAccountNumber"){
found = true;
break;
}
}
if(NOT found){
fail("Struct key getAccountNumber didn't exist");
}
found = false;
//look for account name
for(var i = 1;i lte arrayLen(actual); i ++){
if(structKeyExists(actual[i],"name") && actual[i].name eq "getAccountName"){
found = true;
break;
}
}
if(NOT found){
fail("Struct key getAccountName didn't exist");
}
다소 힘이 빠지고 허약합니다. 더 나은 방법을 아는 사람이 있습니까?
지금은 그것에 대해 생각, 테스트는 항상 실패 할 거라고,하지만, 이름이 두 값되지 않을 수 있기 때문이다. 그래도 내 코드에 대한 일반적인 아이디어를 얻을 수 있다고 생각합니다. –
구조체 배열을 반환한다는 것을 잊지 마십시오. 객체 메타 데이터에서 생성 된 이후로 배열은 특정 순서로 더 복잡해질 수 있습니다. – bittersweetryan
여기에서 고려할 수있는 유일한 변형은 첫 번째 문제가 발생하자마자 바로 실패하지 않고 문제가 발생할 때마다 failuresList 변수에 실패 메시지를 추가하는 것입니다 (예 : "getAccountNumber missing array element #나는#"). 일단 모든 것을 검사했으면 실패 목록의 길이를 확인하고 길이가 0이 아니면 실패합니다 (실패 목록). 때로는 첫 번째 실패를 막기보다는 여러 피드백을 얻는 것이 편리합니다. 그것은 상황에 따라 다르지만. –