TimeSpan 値を含む 2 つのリストを比較する単純な単体テスト メソッドがあります。また、Moq を使用してテストを初期化します。
private IRepository _RepositoryTimeBand;
[TestInitialize]
public void TestInit()
{
var TimeBandSet = new List<TimeBand>
{
new TimeBand() {StartTime = new TimeSpan(7, 30, 0), EndTime = new TimeSpan(16, 0, 0)},
new TimeBand() {StartTime = new TimeSpan(19, 0, 0), EndTime = new TimeSpan(21, 0, 0)}
};
var RepositoryMoq = new Mock<IRepository>();
RepositoryMoq.Setup(
mr =>
mr.GetTimeBand().Returns(TimeBandSet);
_RepositoryTimeBand = RepositoryMoq.Object;
[TestMethod]
public void GetTimeBand_ExpectListOfTimeBandReturned()
{
var expected = new List<TimeBand>
{
new TimeBand {StartTime = new TimeSpan(7, 30, 0), EndTime = new TimeSpan(16, 0, 0)},
new TimeBand {StartTime = new TimeSpan(19, 0, 0), EndTime = new TimeSpan(21, 0, 0)}
};
var timeBandList = _RepositoryTimeBand.GetTimeBand();
Assert.IsNotNull(timeBandList);
Assert.IsTrue(timeBandList.SequenceEqual(expected));
}
TimeBand クラスは次のようになります。
public class TimeBand
{
public TimeSpan StartTime { get; set; }
public TimeSpan EndTime { get; set; }
}
Assert.IsTrue(timeBandList.SequenceEqual(expected));
上記のテスト メソッドでは、2 つのリストが同一であっても常に false を返します。2つのSequenceEqual
リストを比較する正しい方法はありますか? そうでない場合、これらのリストを比較する他の方法はありますか?
ありがとう