OK、単体テストを実行して、Exception.Data プロパティに特定の名前付きキーに対する特定の値が含まれているかどうかを確認しています。
Exception.Data は IDictionary 型です。IDictionary には 2 つのオーバーロードしかなく、辞書の内容を確認する方法がわかりません。
例外をスローする次のコードがあります。
public class MyClass
{
public void ThrowMyException()
{
throw new MyException();
}
}
public class MyException : Exception
{
public MyException()
{
this.Data.Add("MyKey1", 212);
this.Data.Add("MyKey2", 2121);
}
}
次に、MyKey1 = 212 および MyKey2 = 2121 であることを確認するためのテスト:
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
MyClass classUnderTest = new MyClass();
Action test = () =>
{
classUnderTest.ThrowMyException();
};
test.ShouldThrow<MyException>() //.And.Data.Keys.Should().Contain("")
}
}
データに、値が 212 の MyKey1 と値が 2121 の MyKey2 が含まれていることをテストしたいと思います。