0

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リストを比較する正しい方法はありますか? そうでない場合、これらのリストを比較する他の方法はありますか?

ありがとう

4

1 に答える 1