loginservice 3

[Blazor Web App] 14. 로그인 로직에 xUnit 테스트 도입하기 - 테스트 프로젝트부터 첫 단위 테스트까지

지금까지 로그인 기능은 브라우저에서 직접 확인했다.기존 브라우저 구동 테스트 흐름앱 실행 ➡️ 아이디와 비밀번호 입력 ➡️ 로그인 버튼 클릭 ➡️ 메시지 창이 뜨는지 확인이 방법은 화면에서 어떻게 보이는지 확인하기에는 좋았다.하지만 LoginService 안의 로직을 수정할 때마다 정상 로그인이 되는 아이디나 틀린 비밀번호 같은 경우 다시 입력해야 한다. 금번 경우에 대해 일일이 로그인 규칙이 틀어지면 사람이 매번 같은 과정을 빠짐없이 반복하기가 어려울 것 같았다.그래서 이번에는 로그인 화면이 아니라 로그인 서비스 자체가 자동으로 검증하는 테스트 프로젝트를 만들어 보기로 했다.이번 작업의 목표이번에는 처음엔 테스트를 많이 만들지는 않겠다.먼저 아래 흐름이 실제 동작하는지 확인한다.첫 단위 테스트 실행 흐..

language/blazor 2026.08.27

[Blazor Web App] 11. 로그인 데이터 분리하기 - UserAccount와 TestUserRepository 만들기

지난 작업에서는 로그인에 성공했을 때 사용자 정보를 UserInfo에 담아 LoginResult로 반환하도록 구조를 정리했다.로그인 상태를 보관하는 LoginStateService는 사용자 정보를 직접 만들지 않고, LoginService가 만들어준 결과를 저장만 하도록 바꿨다.구조가 조금씩 정리되고 있었지만, LoginService를 다시 보니 아직 테스트 사용자 정보가 직접 들어 있었다.private readonly string testUserId = "sample-admin";private readonly string testPassword = "1111";로그인에 성공했을 때 표시할 사용자 이름과 등급도 LoginService 안에서 직접 만들고 있었다.userInfo.UserId = loginR..

language/blazor 2026.08.08

[Blazor Web App] 10. UserInfo 생성 책임을 LoginService로 옮기기

지난 작업에서는 UserInfo 모델을 만들고, 로그인한 사용자 정보를 LoginStateService에 저장하도록 바꿨다.처음에는 이 구조도 괜찮아 보였다.LoginStateService ├─ IsLoggedIn ├─ CurrentUser └─ StatusMessage그리고 로그인 성공 시 LoginStateService.Login(userId) 안에서 임시 사용자 정보를 만들었다.public void Login(string userId){ UserInfo userInfo; userInfo = new UserInfo(); userInfo.UserId = userId; userInfo.UserName = "테스트 사용자"; userInfo.UserGrade = "테스트 회원";..

language/blazor 2026.08.07