Unit testing 如何从SPField中删除SPFieldUser

Unit testing 如何从SPField中删除SPFieldUser,unit-testing,moles,Unit Testing,Moles,我正在为我的SharePoint应用程序使用Moles编写单元测试用例 我在下面的代码行遇到了麻烦,我无法键入cast-SPField-to-SPFieldUser SField subfield = list.Fields.GetField("Subscriber"); SPFieldUser userfield = (SPFieldUser)subfield; userfield.SelectionGroup = web.Groups["Focal Points"].ID; //error

我正在为我的SharePoint应用程序使用Moles编写单元测试用例 我在下面的代码行遇到了麻烦,我无法键入cast-SPField-to-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..

虽然我相信你已经检查过这些…:

  • GetField(“订阅者”)是否返回对象
  • userfield是否设置为对象
  • userfield.SelectionGroup是否为空
  • 请尝试以下语法:
  • SPFieldUser userfield=作为SPFieldUser的子字段;
    
    所以,这些都失败了。让我们检查SPFieldUser到SField的协方差。继承层次结构是:

    • 系统对象
      • Microsoft.SharePoint.SPField
        • Microsoft.SharePoint.SPFieldLookup
          • Microsoft.SharePoint.SPFieldUser

    不幸的是,我没有Microsoft.SharePoint库,无法查看SPFieldLookup classis是否在SPField中隐藏了一些重要的内容。

    为了模拟上述代码,我在下面一行将MSPFieldUSer user=subfield写为MSPFieldUSer…但我得到了无效的强制转换生成错误。如果我不使用上面一行,那么在Pex探索过程中,我会得到“Null reference”异常可能是因为SPFieldUser未实例化..任何其他调试\测试上述行的方法请提供您的测试。我们需要知道您的MOLE是如何设置的,以确认问题所在,因为您在这一行上单独有三个潜在故障点。哪个值为Null?userField?web?web.Groups[”焦点“]?