2011-02-14 2 views
1

비즈니스 클래스에 호출 할 때 자동으로 MyObject.AspNetUserId (guid 속성)를 Membership.GetUser()로 설정하는 "저장"방법이 있습니다. ProviderUserKey는 실제로 저장을 수행합니다 . 코드를 작성했지만 문제 단위 테스트가 필요합니다.비즈니스 논리 및 단위 테스트를 통한 폼 인증

내 단위 테스트에서 나는 "FormsAuthentication.SetAuthCookie"라는 테스트를 위반하는 행이 있습니다. 내 단위 테스트가 HTTP 컨텍스트 내에서 실행되지 않아 실제로 쿠키를 설정할 수 없기 때문에 그럴 것이라고 가정합니다.

이 방법을 사용할 수 있습니까? 아니면 데모 사이트에서 수동으로 테스트해야합니까?

이것은 정말 나쁜 습관입니까? 다른 작업을해야합니까? 이 코드의 목표는 프로그래머가 웹 사이트 코드에서 매번 기억할 필요가 없도록 내 객체의 "CreatedBy"및 "EditedBy"속성을 자동으로 설정하는 것입니다. 누구에게나 더 좋은 방법이 있다면 나는 아이디어에 열어 둔다.

답변

1

인증 인터페이스에 대한 모든 인증 호출을 프로그래밍하는 방법은 무엇입니까? 그렇게하면 유닛 테스트 중에 대체 구현을 허용하고 login 메소드가 호출 될 것이라는 기대를 설정할 수 있습니다.

public interface IAuthorization 
    { 
     bool ValidateUser(LoginUser u, string password); 
     LoginUser GetCurrentUser(); 
     void LogIn(LoginUser user); 
     void LogOut(); 
     IIdentity GetCurrentUserIdentity(); 
    } 
+0

이 좋은 생각입니다 : 여기

은 예입니다. 우리 회사의 다른 개발자와 이야기를 한 후에 우리는 비즈니스 로직 계층에서 폼 인증을 사용하는 대신 웹 프로젝트에 설정된 공개 속성 "ModifiedById"를 갖기로했습니다. – William

관련 문제