次のテスト方法があります。
[TestMethod]
public void TestHarvestMethod()
{
HarvestTargetTimeRangeUTC time = new HarvestTargetTimeRangeUTC();
time.StartTimeUTC = new DateTime(2008, 01, 01, 00, 00, 00, DateTimeKind.Utc);
time.EndTimeUTC = DateTime.UtcNow;
XElement lIntelexReport = XElement.Parse(rawXml);
Harvester target = new Harvester();
target.ConfigureHarvester((System.Configuration.Configuration)null);
var res = target.Harvest(time);
Console.WriteLine(res);
}
これは、次の方法と組み合わせて機能します。
public void ConfigureHarvester(System.Configuration.Configuration configuration)
{
reportId = Int32.Parse(configuration.AppSettings.Settings["IncidentReport"].Value);
}
このメソッドをテストするには:
public XElement Harvest(HarvestTargetTimeRangeUTC ranges)
{
XElement lIntelexReport = IntelexServiceCall();
return XMLConversion(QueryData(ranges, lIntelexReport));
}
問題は、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という Null Exception エラーを受け取ることです。この行で:
reportId = Int32.Parse(configuration.AppSettings.Settings["IncidentReport"].Value);
私がほぼ肯定的であるのは、ここの null 値が原因です。
target.ConfigureHarvester((System.Configuration.Configuration)null);
上記の行の System.Configuration は、このショップで一般的に使用されるものですが、通常は次のようなメソッド用です。
public void ConfigureHarvester(System.Configuration.Configuration configuration)
{
context = new PlannedOutageFactorDataContext();
}
したがって、私の reportid フィールドは明らかに null 値以外のものを探しています。問題は、何を探しているのか正確にわからないことです。System.Configuration の MSDN を読んだことがありますが、実際には役に立ちませんでした。誰かが私を正しい方向に向けることができれば幸いです。