如何从比较方法返回差异值?c#

本文关键字:返回 比较 方法 | 更新日期: 2023-09-27 18:03:30

如何返回正在比较的两个像素图之间的差异值?我想知道它们之间的区别,这样我就可以使用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));

如何从比较方法返回差异值?c#

这听起来像你在问如何做一个while循环,它执行测试并等待,直到条件已经满足。我不认为你是否在自动化测试中做这件事真的很重要。在任何一种情况下,假设后台线程中发生了一些事情,最终将使两个PixelMaps在Compare:

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

我不完全理解这个问题的背景,这是假设如果你睡觉,这个条件最终会满足。如果不是,这是一个无限循环,所以要小心