Claim
のコレクションに期待される一連のクレームが含まれていると主張しようとしています。私が直面しているように見える問題は、サブセットをチェックして独自の等価オプションを提供する方法がないことです。
var expected = new[] {
new Claim(ClaimTypes.Name, "joshdev"),
new Claim(ClaimTypes.Email, "test@test.com"),
new Claim(ClaimTypes.GivenName, "Josh"),
new Claim(ClaimTypes.Surname, "Perry"),
};
var identity = GetIdentity();
私が試したこと...
identity.Claims.ShouldAllBeEquivalentTo(expected, options => options.Including(x => x.Type).Including(x => x.Value));
ID のクレームが期待されたセットと正確に一致しない場合、これは失敗します。たとえば、それらのクレーム以上のものがある場合です。
identity.Claims.Should().Contain(expected);
型が実装していないメソッドをContain
単に使用しているため、これは失敗します。object::Equals
Claim
私が必要としているのは何らかの方法ですContain
が、エクスポーズと同じ等価オプションを使用しますShouldAllBeEquivalentTo
。おそらくShouldBeEquivalentTo
私が望んでいたものだと思いましたが、それはコレクション内のアイテムではなく、コレクション オブジェクト自体をアサートするためのものです。