2012-02-01 6 views
0

내 SharePoint 응용 프로그램에 대해 Moles를 사용하여 단위 테스트 케이스를 작성하는 중 아래 코드 줄에 고정되어 SPField를 SPFieldUser로 캐스트 할 수 없습니다.SPField에서 SPFieldUser를 채우는 방법

SField subfield = list.Fields.GetField("Subscriber"); 
SPFieldUser userfield = (SPFieldUser)subfield; 
userfield.SelectionGroup = web.Groups["Focal Points"].ID; //error line shown in pex 

I'm getting "NullReference" exception at the above line 
Can someone guide me here.. 
+0

테스트를 제공해주십시오. 우리는 당신의 두더지가 그 한 줄에만 3 가지 잠재적 인 실패 지점을 가지고있을 때 문제가 어디에 있는지를 확인하기 위해 두려운 방법을 알아야합니다. null 값은 무엇입니까? userField? 편물? web.Groups [ "Focus Points"]? – dotnetnate

답변

0

나는 당신이 이미 체크 한하고 있지만이 ...이 :

  1. 합니까 GetField ("가입자")이 객체를 반환?
  2. userfield가 객체로 설정 되나요?
  3. userfield.SelectionGroup은 null입니까?
  4. 이 구문을보십시오 :
SPFieldUser userfield = subfield as SPFieldUser; 

그래서,이 모두가 실패합니다. SField에 대한 SPield 사용자의 공분산을 살펴 보겠습니다. 상속 계층 구조는 다음과 같습니다

  • 으로 System.Object
    • Microsoft.SharePoint.SPField
      • Microsoft.SharePoint.SPFieldLookup
        • Microsoft.SharePoint.SPFieldUser

불행히도, SPFieldLookup 클래스가 SPField에서 중요한 것을 숨기고 있는지 확인하기 위해 Microsoft.SharePoint 라이브러리가 없습니다.

+0

위의 코드를 조롱하려면 아래 줄 MSPFieldUSer user = subfield 아래에 MSPFieldUser ...로 작성했습니다.하지만 잘못된 캐스트 빌드 오류가 발생합니다. 위의 줄을 사용하면 Pex Exploraitons가 실행되는 동안 SPFieldUser가 "널 참조"예외가되는 것 같습니다. 인스턴스화 .. 줄 위의 \ test 디버깅하는 다른 방법 – user1171861