組み込みの抽象クラスのメソッドを使用してブール値を作成するメソッド(runMethod())を単体テストする必要があります。抽象クラスのメソッドは、XmlDocumentsとノードを使用して情報を取得します。コードは次のようになります(これは非常に単純化されていますが、私の問題を示しています)
namespace AbstractTestExample
{
public abstract class AbstractExample
{
public string propertyValues;
protected XmlNode propertyValuesXML;
protected string getProperty(string propertyName)
{
XmlDocument doc = new XmlDocument();
doc.Load(new System.IO.StringReader(propertyValues));
propertyValuesXML= doc.FirstChild;
XmlNode node = propertyValuesXML.SelectSingleNode(String.Format("property[name='{0}']/value", propertyName));
return node.InnerText;
}
}
public class AbstractInheret : AbstractExample
{
public void runMethod()
{
bool addIfContains = (getProperty("AddIfContains") == null || getProperty("AddIfContains") == "True");
//Do something with boolean
}
}
}
したがって、コードは作成されたXmlDocumentからプロパティを取得し、それを使用して結果をブール値に形成します。ここで私の質問は、ブール値の結果の動作を確実に制御するための最良の解決策は何であるかということです。モックの可能性のためにMoqを使用しています。
このコード例はおそらく少しあいまいですが、私が示すことができる最高のものです。皆さんがお役に立てば幸いです。
編集:基本的に必要なのは
、AbstractInheretクラスのテスト中にgetProperty()を制御できる必要があることです。