본문 바로가기

자바신입5

[JAVA] BUILD-OPERATE-CHECK 패턴 BUILD-OPERATE-CHECK (또는 Arrange-Act-Assert) 패턴은 소프트웨어 테스트의 구성 방식 중 하나이다. 이 패턴은 테스트 케이스를 구성하는 단계와 테스트를 실행하고 결과를 확인하는 단계로 나누어져 있다. 패턴의 각 단계는 다음과 같이 정의된다. 1) BUILD 또는 ARRANGE 테스트 환경을 설정하고 테스트에 필요한 객체, 데이터 또는 상태를 준비한다. 이 단계에서는 테스트에 필요한 사전 조건을 설정한다. 2) OPERATE 또는 ACT 준비된 테스트 환경에서 실제로 테스트 대상을 실행하거나 상호작용한다. 테스트 대상에 대한 동작을 수행한다. 3) CHECK 또는 ASSERT 실행된 결과를 검증하여 예상된 동작과 일치하는지 확인한다. 테스트 결과를 평가하여 기대한 결과와 일치.. 2023. 6. 17.
[JAVA] given-when-then 관례 given-when-then은 행위 주도 개발(Behavior-Driven Development, BDD)에서 사용되는 테스트 관례이다. 이 관례는 테스트 케이스를 작성할 때 구조화와 가독성을 높여주는 방식으로 테스트를 구성한다. given-when-then의 각 부분은 다음과 같이 정의된다. 1) given 테스트를 위한 사전 조건을 설정하는 단계이다. 테스트 환경을 준비하고, 초기 상태를 설정한다. 이 단계에서는 테스트에 필요한 객체, 데이터, 상태 등을 사전에 정의한다. 2) when 테스트 대상의 동작을 실행하는 단계이다. 주로 어떤 이벤트나 동작을 수행하는 부분이며, 테스트 대상이 실제로 실행되는 시점이다. 3) then 실행된 결과를 검증하는 단계이다. 테스트 대상의 동작에 대한 예상 결과를 .. 2023. 6. 16.
왕초보를 위한!! 자바 기초 코드 해석 방법 3) 인스턴스 생성 FileInputStream stream = new FileInputStream(sectionName); 코드를 해석해보자 이 코드는 FileInputStream 클래스의 인스턴스를 생성하고, 이를 stream 변수에 할당하는 구문이다. FileInputStream은 파일에서 데이터를 읽을 수 있는 스트림이다. sectionName은 생성할 파일 입력 스트림의 대상 파일을 나타내는 문자열이다. 보통은 파일 경로나 파일명을 전달하여 해당 파일에 대한 입력 스트림을 생성한다. 예를 들어, "example.txt"와 같이 파일명을 전달할 수 있다. 따라서, 위의 코드는 sectionName에 해당하는 파일을 읽기 위한 FileInputStream 인스턴스를 생성하고, 이를 stream 변수에 할당하는 것이다... 2023. 6. 13.
왕초보를 위한!! 자바 기초 코드 해석 방법 2) 메서드, 타입 public List retrieveSection(String sectionName) { return new ArrayList(); } 위 코드는 retrieveSection 메서드를 정의하는 부분이다. public List retrieveSection(String sectionName): retrieveSection이라는 공개(public) 메서드를 선언하고 있다. 이 메서드는 String 타입의 sectionName 파라미터를 받으며, List 타입의 결과를 반환한다. return new ArrayList();: 새로운 ArrayList 객체를 생성하여 반환한다. 이는 RecordedGrip 객체의 리스트를 저장할 수 있는 동적 배열을 생성하는 것이다. retrieveSection 메서드는 secti.. 2023. 6. 13.
왕초보를 위한!! 자바 기초 코드 해석 방법 1) 클래스 public class DeviceController { ... public void sendShutDown() { DeviceHandle handle =getHandle(DEV1); if (handle != DeviceHandle.INVALID) { retrieveDeviceRecord(handle); if (record.getStatus() != DEVICE_SUSPENDED) { pauseDevice(handle); clearDeviceWorkQueue(handle); closeDevice(handle); } else { logger.log("Device suspended.Unable to shut down"); } } else { logger. log("Invalid handle for: " + .. 2023. 6. 13.