У меня есть бизнес-правило, под которым цвет фона текстового поля должен меняться в зависимости от значения в текстовом поле. Как я могу утверждать, что цвет фона текстового поля соответствует ожиданиям в кодированном пользовательском интерфейсе в VS2015?Утверждение цвета фона WPF с использованием кодированного теста пользовательского интерфейса в VS2015
0
A
ответ
3
один из способов сделать это захват изображения вашего UITestControl и утверждения определенного цвета пикселя:
//Capture an image of your test control
Bitmap testControlImage = yourUITestControl.CaptureImage() as Bitmap;
// Get the color of a pixel you specify within the captured image.
Color pixelColor = testControlImage.GetPixel(50, 50);
// Assert the pixel color
Assert.AreEqual(pixelColor.ToString(), "Color [A=255, R=99, G=99, B=99]");
1
Я никогда не видел, чтобы это было возможно, когда я смотрел раньше, поэтому я положил его на то, что еще нельзя сделать, но некоторые люди добились определенных успехов на других подобных постах, которые могли бы помочь вы из: Accessing font properties of wpftext control in codedUI testing
Это работает как шарм! Мне не удалось сразу сравнить «известные цвета», такие как Color.Orange, поэтому я конвертирую полученный цвет в ARGB и маскирую A out, сохраняя только значения RGB фактического значения. Затем я сравниваю это с значениями RGB известных цветов, преобразованных и замаскированных значений известного цвета: –
'var backgroundColor = bitmap.GetPixel (6, 6) .ToArgb() & 0x00FFFFFF; var compareColor = Color.Orange.ToArgb() & 0x00FFFFFF; –