목차
질문내용
해결 방법
Java 테스트 전에 System.out.println(in.readLine()) 문을 추가하면 Java 서버 테스트가 통과되지만, 테스트가 없으면 실패하는 이유는 무엇입니까?

테스트 전에 System.out.println(in.readLine()) 문을 추가하면 Java 서버 테스트가 통과되지만, 테스트가 없으면 실패하는 이유는 무엇입니까?

Feb 22, 2024 pm 01:34 PM

php 편집자 Yuzai의 답변: Java 서버 테스트에 System.out.println(in.readLine()) 문을 추가하면 테스트 결과에 영향을 줄 수 있습니다. 왜냐하면 이 문은 서버의 입력 스트림을 읽어서 서버가 데이터를 수신할 수 있기 때문입니다. 요구. 이 문이 없으면 서버가 요청을 올바르게 수신하지 못해 테스트가 실패할 수 있습니다. 따라서 테스트 전에 이 문장을 추가하는 것은 서버가 요청을 정상적으로 수신하고 테스트를 통과할 수 있는지 확인하는 것입니다.

질문내용

멀티플레이 지뢰찾기 게임을 처리하기 위해 자바로 서버를 구현하려고 합니다. 내 서버가 합법적인 클라이언트 요청에 올바르게 응답하는지 확인하기 위해 테스트하는 동안 특정 클라이언트 요청을 서버에 인쇄한 후 system.out.println(in.readline()) 문을 추가해야만 테스트 출력을 통과할 수 있다는 사실을 발견했습니다. stream 이지만 테스트 자체를 호출하기 전입니다.

예를 들어 클라이언트가 할 수 있는 요청 중 하나는 보드의 현재 상태를 보기 위한 "보기" 요청입니다. 저는 원래 다음과 같이 "look"에 대한 테스트를 작성했습니다:

으아악

그런데 이렇게 테스트를 실행하면 실패하고 [- - - - - - -]를 예상했지만 []이 발생했다는 오류 메시지가 나타납니다.

하지만 다음과 같은 인쇄문을 추가하면:

으아악

테스트를 통과했습니다. 왜 그런 상황이 있습니까? print 문은 클라이언트가 서버에서 입력을 읽을 수 있는 시간을 더 제공합니까, 아니면 다른 일이 진행되고 있습니까? 도움이 된다면 내 코드의 더 많은 조각을 제공해 드리겠습니다.

해결 방법

맹목적인 추측: 서버 응답이 예상치 못한 빈 줄로 시작됩니다.

system.out.println(in.readline());<code>println 部分实际上并不重要,只需使用 in.readline() 就会得到相同的结果,因为它“消耗”了来自服务器的第一行。这不是时间问题,因为 readline() 전체 행이 수신될 때까지 차단됩니다.

빈 줄을 보내는 모든 항목을 제거하거나 문제를 해결하기 위해 테스트를 수정하여 서버에서 이 문제를 해결할 수 있습니다.

으아악

위 내용은 테스트 전에 System.out.println(in.readLine()) 문을 추가하면 Java 서버 테스트가 통과되지만, 테스트가 없으면 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)