如何从Compare方法返回差值? C#

时间:2014-05-15 18:30:15

标签: c# bitmap while-loop comparison automated-tests

如何返回被比较的两个像素图之间的差异值?我想知道差异所以我可以使用while循环来延迟执行,直到两个像素图在一定的容差范围内。原因是我想等到在执行其余代码之前加载位于网页上不同元素中的图像(用于自动测试)。我正在使用Assert.IsTrue来比较当前的两个容忍率为5%,但我不确定如何将其转换为循环。

ArtOfTest.Common.PixelMap expected = ArtOfTest.Common.PixelMap.FromBitmap(expectedbmp);
ArtOfTest.Common.PixelMap actual = ArtOfTest.Common.PixelMap.FromBitmap(actualbmp);

Assert.IsTrue(expected.Compare(actual,5.0));

1 个答案:

答案 0 :(得分:1)

这听起来像是在问你如何做一个执行测试的while循环并等待条件完成。我不认为你在自动化测试中这样做或不重要的事实。在任何一种情况下,假设后台线程中正在进行某些操作,最终会使两个PixelMaps在Compare上返回true:

 while( !expected.Compare(actual, 5.0))
 {
     const int numberOfMillisecondsToSleep = 1000;
     System.Threading.Thread.Sleep(numberOfMillisecondsToSleep);
 }

我不完全理解问题的背景,并假设如果你睡觉,这种情况最终会得到满足。如果没有,这是一个无限循环,所以要小心。