В данной статье не будет рассказано, что такое Selenium и Selenium WebDriver – по этому поводу написано уже множество замечательных статей.
Здесь я хочу привести лишь небольшой пример того, как можно протестировать клиентский код в MS Dynamics CRM.
Но думаю, парой слов о Selenium WebDriver обмолвиться все же можно.
Итак, Selenium WebDriver – это библиотека, которая позволяет управлять браузером: давать браузеру какие-то команды, заполнять элементы UI, считывать значения, запускать скрипты.
Итак, поехали!
Перво-наперво создадим стандартный Unit Test Project.
Visual Studio заботливо создаст для нас класс теста и метод теста – переименуем их в соответствии с нашей предметной областью.
Затем мы установим следующие штуки посредством nuget: Selenium.WebDriver и WebDriverIEDriver (коли IE является дефолтным браузером для MS Dynamics CRM).
Ну почти всю работу мы сделали:)
Теперь остается написать только наш юнит-тест.
Проверять наш тест будет следующий case: существует два поля «Предполагаемая сумма» и «Взвешенная сумма», при этом «Взвешенная сумма» должна равняться 30% от «Предполагаемая сумма». И данное значение должно устанавливаться клиентским скриптом.
namespace CrmSeleniumUnitTest { [TestClass] public class OpportunityTests { [TestMethod] public void WeightedSummCalculate() { decimal estimatedValue = 1000m; decimal expectedWeightedValue = estimatedValue * 0.3m; string contentFrame = "contentIFrame"; string estimatedValueId = "estimatedvalue"; string weightedEstimatedValueId = "isv_weightedestimatedvalue"; string weightedEstimatedValueAttribute = "value"; var driver = new InternetExplorerDriver(); driver.Navigate().GoToUrl("https://test.crm.crm"); driver.SwitchTo().Frame(contentFrame); var estimatedValueElement = driver.FindElement(By.Id(estimatedValueId)); estimatedValueElement.Clear(); estimatedValueElement.SendKeys(Keys.Tab); estimatedValueElement.SendKeys(estimatedValue.ToString(CultureInfo.InvariantCulture)); estimatedValueElement.SendKeys(Keys.Tab); Thread.Sleep(10000); var weightedValueElement = driver.FindElement(By.Id(weightedEstimatedValueId)); var actualWeightedValue = Decimal.Parse(weightedValueElement.GetAttribute(weightedEstimatedValueAttribute),CultureInfo.InvariantCulture); driver.Quit(); Assert.AreEqual(expectedWeightedValue, actualWeightedValue); } } }
Запускаем тест.
Ну вот и все — коротенько и по делу:)
ссылка на оригинал статьи http://habrahabr.ru/post/274001/
Добавить комментарий