C# 如何使用SPJobDefinitionCollection的GetEnumerator方法

C# 如何使用SPJobDefinitionCollection的GetEnumerator方法,c#,unit-testing,sharepoint,moles,pex,C#,Unit Testing,Sharepoint,Moles,Pex,有人能帮帮我吗? 我需要使用摩尔为该方法创建一个单元测试: public override void FeatureActivated(SPFeatureReceiverProperties properties) { SPWebApplication webApp = properties.Feature.Parent as SPWebApplication; foreach (SPJobDefinition job in webApp.JobDe

有人能帮帮我吗?

我需要使用摩尔为该方法创建一个单元测试:

   public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
        foreach (SPJobDefinition job in webApp.JobDefinitions)
            if (job.Name == "AAAA") job.Delete();
        AssistantJob aJob = new AssistantJob(webApp);
        SPDailySchedule schedule = new SPDailySchedule();
        schedule.BeginHour = 2;
        schedule.BeginMinute = 30;
        schedule.BeginSecond = 0;
        schedule.EndHour = 3;
        schedule.EndMinute = 30;
        schedule.EndSecond = 0;
        aJob.Schedule = schedule;
        aJob.Update();
    }
但是,当我执行测试时,会出现以下错误消息:

failing test: MoleNotImplementedException, SPPersistedObjectCollection`1.GetEnumerator() was not moled.
        foreach (SPJobDefinition job in webApp.JobDefinitions)
    [PexMethod]
    public void FeatureActivated(
        [PexAssumeUnderTest]ApprovalAssistantCleanupEventReceiver target
    )
    {
        MSPFarm.BehaveAsNotImplemented();

        BSPFeatureReceiverProperties props = new BSPFeatureReceiverProperties();
        BSPFeature feature = new BSPFeature();
        MSPWebApplication webapp = new MSPWebApplication();

        props.Feature = feature;
        feature.Parent = webapp.Instance;
        webapp.JobDefinitionsGet = () => new MSPJobDefinitionCollection();

        target.FeatureActivated(props);

    }
此错误出现在此行中:

failing test: MoleNotImplementedException, SPPersistedObjectCollection`1.GetEnumerator() was not moled.
        foreach (SPJobDefinition job in webApp.JobDefinitions)
    [PexMethod]
    public void FeatureActivated(
        [PexAssumeUnderTest]ApprovalAssistantCleanupEventReceiver target
    )
    {
        MSPFarm.BehaveAsNotImplemented();

        BSPFeatureReceiverProperties props = new BSPFeatureReceiverProperties();
        BSPFeature feature = new BSPFeature();
        MSPWebApplication webapp = new MSPWebApplication();

        props.Feature = feature;
        feature.Parent = webapp.Instance;
        webapp.JobDefinitionsGet = () => new MSPJobDefinitionCollection();

        target.FeatureActivated(props);

    }
这是我的单元测试代码:

failing test: MoleNotImplementedException, SPPersistedObjectCollection`1.GetEnumerator() was not moled.
        foreach (SPJobDefinition job in webApp.JobDefinitions)
    [PexMethod]
    public void FeatureActivated(
        [PexAssumeUnderTest]ApprovalAssistantCleanupEventReceiver target
    )
    {
        MSPFarm.BehaveAsNotImplemented();

        BSPFeatureReceiverProperties props = new BSPFeatureReceiverProperties();
        BSPFeature feature = new BSPFeature();
        MSPWebApplication webapp = new MSPWebApplication();

        props.Feature = feature;
        feature.Parent = webapp.Instance;
        webapp.JobDefinitionsGet = () => new MSPJobDefinitionCollection();

        target.FeatureActivated(props);

    }
我在internet上读到,我需要使用绑定将GetEnumerator()实现到集合中。然后改变了我的单元测试来实现这个,但是错误是一样的。 AssistantJob类实现JobDefinition抽象类

        webapp.JobDefinitionsGet = () => new MSPJobDefinitionCollection().Bind(new MApprovalAssistantJob[] {
            new MAssistantJob() {  },
            new MAssistantJob() {  }
        });
有人能帮我在MSPJobDefinitionCollection中添加masistantjob项吗

对不起,我的英语不好

非常感谢