1
이것은 내가 노출 한 컨트롤러 코드의 내 함수입니다. 여기 단위 테스트 void 메서드 - Jasmine, javascript
//unit test code
$.getMessagesUnit = function(chatId) {
if (!(Titanium.Network.networkType === Titanium.Network.NETWORK_NONE)) {
apiHelper.APIGetRequest(xxxxxxxx + '/messages/' + args.chatId, function(e) {
$.view_indicator.visible = true;
var status = this.status;
if (status == 200) {
console.log('get chats');
var data = JSON.parse(this.responseText);
console.log(data);
var rows = [];
var i = 0;
var blob;
for (x in data.messages) {
//Ti.API.debug(JSON.stringify(messages[x]));
var nickname = null;
var chatBlob = null;
var picture = null;
var timeStampCon = null;
chatBlob = data.messages[x].message;
nickname = data.messages[x].user.nickname;
picture = data.messages[x].user.pictures[0];
//alert(data.messages[x].message);
timeStampCon = utilities.getCurrentTimeFromStamp(data.messages[x].timestamp);
textArea.addLabel(timeStampCon);
//alert(data.messages[x].user.id);
if (args.pickedId == data.messages[x].user.id) {
textArea.recieveMessage(chatBlob);
textArea.addLabel("\n");
} else {
textArea.sendMessage(chatBlob);
textArea.addLabel("\n");
}
}
//return rows;
//end
$.view_indicator.visible = false;
}
}, function(err) {
alert('Unknown error from api');
$.view_indicator.visible = false;
});
} else {
alert('No internet connection found');
$.view_indicator.visible = false;
}
};
//end
내 단위 테스트 코드입니다 :
it('test chat window function.', function() {
$ = Alloy.createController('chatWindow', {});
expect($.getMessagesUnit(123).chatBlob). toBeDefined();
});
API 호출을 한 후 나는의 JSON 요청에 변수가 정의 된 경우 테스트 할 :
var nickname = null;
var chatBlob = null;
var picture = null;
var timeStampCon = null;
에 단위 테스트에서 얻은 데이터가 정의되어 있는지 확인하십시오. 다음과 같은 오류가 발생합니다 :
[INFO] : . ============================================================
[ERROR] : . THERE WERE FAILURES!
[ERROR] : . ============================================================
[ERROR] : . Recap of failing specs:
[ERROR] : . ------------------------------------------------------------
[ERROR] : . chatWindow controller test chat window function.. - Expected undefined to be defined.
단위 테스트가 처음인데 어떻게하면 void 메소드에서 개별 변수를 테스트 할 수 있습니까?
건배들
업데이트 - 사용 스파이 :
it('test spies in receive message function.', function() {
$ = Alloy.createController('chatWindow', {});
spyOn($, 'textarea.recieveMessage');
$.getMessagesUnit(123);
expect(textarea.recieveMessage).toHaveBeenCalled();
});
[INFO] : . - test spies in receive message function.. (FAILED)
[INFO] : . - - Expected spy recieveMessage to have been called.
어떻게하면 좋을까요? 나는 재스민에 아주 새롭다, 그리고 그것은 나를 미치게했다! – user3754111
스파이를위한 코드가있는 OP가 수정되어 작동하지 못했습니다. 건배 – user3754111
spyOn 함수의 두 번째 매개 변수는 감시 할 함수의 이름이어야합니다. 따라서 'spyOn ($. textArea,'recieveMessage ');는 원하는 것입니다 (textArea는 $ 객체의 속성이라고 가정합니다. –