我有一个阶段列表,每个阶段都有Id
,StageNumber
(即索引),Name
和Progress object
,其中包含名为{{1}的bool字段}。
如何测试IsCompleted
之前的所有项目(我将传递给方法的obj)是否完整?我有以下代码但是我得到了错误的返回,我已经检查了我的列表,并且阶段0被检查为my current stage
completed
答案 0 :(得分:3)
一旦找到任何索引大于或等于你的阶段,它就会失败。我怀疑你想要:
Assert.IsTrue(progress.Stages.TakeWhile(stage => stage.StageNumber < indexToTest)
.All(stage => stage.Progress.IsCompleted));
这是假设阶段是有序的。如果他们不是,你真的想测试每个阶段 在你的索引之后/之后测试或它已经完成了:
Assert.IsTrue(progress.Stages.All(stage => stage.StageNumber >= indexToTest
|| stage.Progress.IsCompleted));
编辑:如果它能帮助你思考它,可以选择以下方法:
Assert.IsFalse(progress.Stages.Any(stage => stage.StageNumber < indexToTest
&& !stage.Progress.IsCompleted));
这表示“ 之前indexToTest
之前不应存在任何阶段。