Ну вот, наконец-то я поборол лень и написал краткий мануал для своей мини-библиотечки
MQL4unit – библиотека для юнит-тестирования функций, написанных на языке MQL4 компании MetaQuotes.
Автор: я)))
Идея библиотеки взята из статьи «Повышаем качество кода при помощи Unit Tests»(articles.mql4.com/ru/936), но текущая реализация доработана до стандарта xUnit. Используемая лицензия – GNU/GPL v 2.0 (http://infolex.narod.ru/gpl_gnu/gplrus.html).
Подробнее о практике Unit Testing можно прочитать в книге Кента Бека «Экстремалное программирование. Разработка через тестирования» (Beck Kent “Extreme Programming. Test Driven Development”, Addison-Wesley, 2000). Так как MQL4 является процедурным языком, минимальным тестировочным юнитом будет являться одна функций (процедура). Результаты тестирования можно посмотреть во вкладке «Эксперты» (“Experts”) торгового терминала.
Функции инициализации и деинициализации набора тестов.
void UnitTestStart(string TestName) – функция инициализации набора тестов. Принимает один параметр типа string, обозначающий название набора тестов. Рекомендуется применять осмысленные названия для более четкой идентификации результатов тестирования. Должна быть вызвана до каких-либо других функций библиотеки, так как она инициализирует счетчики успешных и проваленных тестов, общего количества. В противном случае общий результат тестирования будет некорректен.
bool UnitTestEnd() – функция деинициализации набора тестов. Возвращает true в случае прохождения всех тестов, false – в противном случае. Должна быть вызвана после всех обращений к функциям библиотеки в пределах одного набора тестов.
Функции тестирования единичных значений.
bool AssertTrue(bool var) – функция для тестирования логической переменной на ожидаемое значение "истина".
Параметр: bool var.
Возвращаемое значение: true, если входная переменная содержит значение "истина"; false, если входная переменная содержит значение "ложь".
bool AssertFalse(bool var) – функция для тестирования логической переменной на ожидаемое значение "ложь".
Параметр: bool var.
Возвращаемое значение: true, если входная переменная содержит значение "ложь"; false, если входная переменная содержит значение "истина".
bool AssertBoolsEqual(bool gotten, bool needed) – функция для тестирования двух булевых переменных на равенство (полученной в результате работы тестируемого юнита и ожидаемой).
Параметры: bool gotten – значение, полученное в результате работы тестируемого юнита, bool needed – ожидаемое значение.
Возвращаемое значение: true, если значения входных переменных равны; false, если значения входных переменных не равны.
bool AssertIntsEqual(int gotten, int needed) – функция для тестирования двух целочисленных переменных на равенство (полученной в результате работы тестируемого юнита и ожидаемой).
Параметры: int gotten – значение, полученное в результате работы тестируемой функции, int needed – ожидаемое значение
Возвращаемое значение: true, если значения входных переменных равны; false, если значения входных переменных не равны.
bool AssertDoublesEqual(double gotten, double needed, int pres) – функция для тестирования двух переменных типа double на равенство (полученной в результате работы тестируемого юнита и ожидаемой).
Параметры: double gotten – значение, полученное в результате работы тестируемой функции, double needed – ожидаемое значение, int pres – требуемая точность сравнение (кол-во знаков после запятой).
Возвращаемое значение: true, если значения входных переменных равны; false, если значения входных переменных не равны.
bool AssertColorsEqual(color gotten, color needed) – функция для тестирования двух (цветовых) переменных типа color на равенство (полученной в результате работы тетстируемого юнита и ожидаемой).
Параметры: color gotten – значение, полученное в результате работы тестируемой функции, color needed – ожидаемое значение.
Возвращаемое значение: true, если значения входных переменных равны; false, если значения входных переменных не равны.
bool AssertStringsEqual(string gotten, string needed) – функция для тестирования двух строковых переменных типа на равенство (полученной в результате работы тестируемого юнита и ожидаемой)
Параметры: string gotten – значение, полученное в результате работы тестируемой функции, string needed – ожидаемое значение.
Возвращаемое значение: true, если значения входных переменных равны; false, если значения входных переменных не равны.
Функции сравнения массивов.
bool AssertBoolArraysEqual(bool gotten[], bool needed[]) – функция для тестирования двух массивов булевых переменных на равенство (полученного в результате работы тестируемого юнита и ожидаемого).
Параметры: bool gotten[]– массив, полученный в результате работы тестируемой функции, bool needed[] – ожидаемый массив.
Возвращаемое значение: true, если массивы равной длины и совпадают поэлементно, false – в противном случае.
bool AssertIntArraysEqual(int gotten[], int needed[]) – функция для тестирования двух массивов целочисленных переменных на равенство (полученного в результате работы тестируемого юнита и ожидаемого).
Параметры: int gotten[] – массив, полученный в результате работы тестируемой функции, int needed[] – ожидаемый массив.
Возвращаемое значение: true, если массивы равной длины и совпадают поэлементно, false – в противном случае.
bool AssertDoubleArraysEqual(double gotten[], double needed[]) – функция для тестирования двух массивов вещественных переменных на равенство (полученного в результате работы тестируемого юнита и ожидаемого).
Параметры: int gotten[] – массив, полученный в результате работы тестируемой функции, int needed[] – ожидаемый массив.
Возвращаемое значение: true, если массивы равной длины и совпадают поэлементно, false – в противном случае.
bool AssertStringArraysEqual(string gotten[], string needed[]) – функция для тестирования двух массивов строковых переменных на равенство (полученного в результате работы тестируемого юнита и ожидаемого).
Параметры: string gotten[] – массив, полученный в результате работы тестируемой функции, string needed[] – ожидаемый массив.
Возвращаемое значение: true, если массивы равной длины и совпадают поэлементно, false – в противном случае.
bool AssertColorArraysEqual(color gotten[], color needed[]) – функция для тестирования двух массивов значений цвета на равенство (полученного в результате работы тестируемого юнита и ожидаемого).
Параметры: color gotten[] – массив, полученный в результате работы тестируемой функции, color needed[] – ожидаемый массив.
Возвращаемое значение: true, если массивы равной длины и совпадают поэлементно, false – в противном случае.
bool AssertDatetimeArraysEqual(datetime gotten[], datetime needed[]) –функция для тестирования двух массивов дат на равенство (полученного в результате работы тестируемого юнита и ожидаемого).
Параметры: datetime gotten[] – массив, полученный в результате работы тестируемой функции, datetime needed[] – ожидаемый массив.
Возвращаемое значение: true, если массивы равной длины и совпадают поэлементно, false – в противном случае।Код с полной документацией лежит тут.