Closed choigowon closed 3 months ago
아마 제 생각에도 연결이 안되어있어서 그런 것 같습니다. 해당 부분은 제가 테스트 하도록 하겠습니다!
연결이 안되어있을 경우 from unittest.mock import patch, MagicMock
라이브러리를 import 한 후
unittest.mock
을 사용하여 serial.Serial
을 모의 객체로 대체(in_waiting = True)
설정되고, readline
메서드가 호출될 때 특정 값 ('123.45\n')
을 반환하도록 설정read_arduino()
를 실행하는 별도의 스레드를 시작read_arduino()
의 동작을 검증할 수 있게 하여, 함수가 모의 데이터를 올바르게 처리해당 코드
@patch('serial.Serial')
def test_arduino_data_number(self, mock_serial):
# mock 객체 설정
mock_serial_instance = MagicMock()
mock_serial.return_value = mock_serial_instance
mock_serial_instance.in_waiting = True
mock_serial_instance.readline.return_value = b'123.45\n'
# 스레드 시작
scr.threading.Thread(target=scr.read_arduino, daemon=True).start()
# 스레드가 값을 읽을 시간을 줌
scr.threading.Event().wait(1)
오류없이 테스트 작동하였습니다.
scr.py 파일 Unittest 진행 중입니다. 다른 함수들은 정상적으로 작동하는데 read_arduino() 함수에서
ser = serial.Serial(PORT, BaudRate)
부분에서 오류가 뜹니다. 아두이노 연결안되있어서 그런건지 진짜 오류인건지 잘 모르겠습니다. 일단 테스트는 잘 동작하는데 저 부분에서 계속 오류가 뜹니다. 해결 방안 알려주세요.