辞書に特定のキーが含まれているかどうかを確認する単体テストを作成しています。キーと値のペアをディクショナリに追加するプログラムの一部を次に示します。
public void Subscribe(EvtId inEvent, EvtDelegate inCallbackMethod)
{
if(mEventMap.ContainsKey(inEvent))
{
mEventMap[inEvent] += inCallbackMethod;
}
else
{
mEventMap.Add(inEvent, inCallbackMethod);
}
}
そして、ここにユニットテストコードの一部があります:
public void SubscribeTest()
{
EventHandlerCs target = new EventHandlerCs(eLayer.1stLayer);
target.Subscribe(EvtId.AccessChange, AccessChangeVT);
EventHandlerCs_Accessor target2 = new EventHandlerCs_Accessor(eLayer.1stLayer);
EvtId expectedEvt = EvtId.AccessChange;
EvtId actualEvt;
if (target2.mEventMap.ContainsKey(EvtId.AccessChange))
{
// ???
// Assert.AreEqual(expectedEvt, actualEvt);
}
}
ContainsKey
キーの実際の値/キー自体(メソッドを使用して辞書で見つけたら)をactualEvt
ユニットテストコードの変数にマップするにはどうすればよいですか?
必要に応じて、質問に関する詳細情報をお気軽にお尋ねください。
更新:問題の辞書はに設定されてprivate
いるため、アクセサーを使用する必要がありました。