2016-12-09 1 views
0

XMLノードを通過させることによって、プライベートメソッドを呼び出して、コードが上記のコードではIは、ユニットテストを書いて

TestAbstractionLib.UnitTestUtilsClass.UnitTestFileName = TestAbstractionLib.UnitTestUtilsClass.VisualDumpAfterValueSet; 
    object[] prop = { "Patient", false }; 
    var methodUnderTest = Helper.GetStaticMethod(typeof(TestAbstractionLib), "GetListOfDesiredNodes"); 
    var labelNode = methodUnderTest.Invoke(this, prop); 


    object[] prop1 = {labelNode, "BIPOLAR", "Chamber", true, 10, 10, false}; 
    methodUnderTest = Helper.GetStaticMethod(typeof(TestAbstractionLib), "CheckValueIsSetAlready"); 
    var result = methodUnderTest.Invoke(this, prop1); 

    Assert.AreEqual(result, false); 
    TestAbstractionLib.UnitTestUtilsClass.CheckerrorinLogFile(true); 

下に示されているように、私は次々に2つのプライベートメソッドを呼び出しますよ。 最初のプライベートメソッド "GetListOfDesiredNodes"はXMLNodeを返します。

このXMLNodeをパラメータとして他のプライベートメソッドに渡す必要があります。

「labelNode」は「XMlNode」タイプではないオブジェクトタイプです。

私は次のメソッドのパラメータとして、このオブジェクト型を渡すと、それは私にどんな解決策を教えてください

"Object of type 'System.Collections.Generic.List 1[System.Xml.XmlNode]' cannot be converted to type 'System.Xml.XmlNode'." 

の下に表示される例外を投げていた、どのように私はのXMLNodeに、このオブジェクトの種類を変換することができますし、他のメソッドを呼び出します。

ありがとうございます。

+0

これは、単一のノードではなく、ノードのリストを渡すためです。 – Jeff

答えて

2

テストしたが、これは動作するはずはない:

TestAbstractionLib.UnitTestUtilsClass.UnitTestFileName = TestAbstractionLib.UnitTestUtilsClass.VisualDumpAfterValueSet; 
object[] prop = { "Patient", false }; 
var methodUnderTest = Helper.GetStaticMethod(typeof(TestAbstractionLib), "GetListOfDesiredNodes"); 
var labelNode = methodUnderTest.Invoke(this, prop) as List<XmlNode>; 


object[] prop1 = {labelNode.FirstOrDefault(), "BIPOLAR", "Chamber", true, 10, 10, false}; 
methodUnderTest = Helper.GetStaticMethod(typeof(TestAbstractionLib), "CheckValueIsSetAlready"); 
var result = methodUnderTest.Invoke(this, prop1); 

Assert.AreEqual(result, false); 
TestAbstractionLib.UnitTestUtilsClass.CheckerrorinLogFile(true); 

あなたのコードを見ることなく、しかし、あなたのエラーから判断すると、あなたは、単一のXmlNodeはなく、リストに渡す必要があります。上記の結果は、最初のメソッドの結果をリストにキャストし、最初の要素を2番目のメソッドに渡します。

+0

最初にリストにlabelNodeをキャストする必要があります。編集:私はあなたがすでにそれをやっているのを見て、申し訳ありません... – adhie

+0

ありがとう@ジェフは私のために働く。 –

関連する問題