はじめに
もともと『ChainingAssertion』というアサーションライブラリを使用していたのですが、配列の中身を順不同で確認したい場合うまく書けずに模索していたところ『FluentAssertions』というアサーションライブラリに出会いました。
GitHubを比較するとこちらの方がスターの数が多く、更新もされているようなので置き換えていくとともに備忘録として記録しておきます。
配列やコレクションの比較
等しいことを確認
Collections
IEnumerable<int> target = new[] { 1, 2, 5, 8 };
target.Should().Equal(new List<int> { 1, 2, 5, 8 }); // 順序通りに確認
target.Should().Equal(1, 2, 5, 8); // 順序通りに確認
target.Should().BeEquivalentTo(new[] { 8, 2, 1, 5 }); // 順不同
等しくないことを確認
Collections
IEnumerable<int> target = new[] { 1, 2, 5, 8 };
target.Should().NotEqual(new List<int> { 8, 2, 3, 5 }); // 順序通りに確認
target.Should().NotBeEquivalentTo(new[] { 8, 2, 3, 5 }); // 順不同
数を確認
Collections
IEnumerable<int> target = new[] { 1, 2, 5, 8 };
target.Should().HaveCount(4);
部分配列の確認
Collections
IEnumerable<int> target = new[] { 1, 2, 5, 8 };
target.Should().ContainInOrder(2, 5);
target.Should().ContainInOrder(new[] { 2, 5 });