VEU.WathBody/3-app/5-watch/FenixDataField/test-source/CoreChecks.mc

50 lines
1.8 KiB
MonkeyC
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Мини-раннер юнит-тестов ядра. Штатный (:test)-harness (Toybox.Test +
// monkeydo /t) не стартует в связке «симулятор 4.2.2 + девайс-пак из
// docker-образа» — Unexpected Type Error на старте ЛЮБОГО тестового prg
// (проверено на минимальном проекте из 15 строк), поэтому тесты гоняет
// собственный раннер: те же проверки (спека 02), вывод println → консоль
// симулятора (monkeydo). Файлы в test-source/ — в release-сборку поля
// (monkey.jungle → source/) не попадают.
import Toybox.Lang;
import Toybox.System;
class CoreChecks {
var failed;
var passed;
function initialize() {
failed = 0;
passed = 0;
}
function eq(a, b, msg) {
// «==» для строк — сравнение по ссылке: литерал и собранная
// строка не равны, строки сверяем через equals
var okEq = a == b;
if (!okEq && a instanceof Lang.String && b instanceof Lang.String) {
okEq = a.equals(b);
}
if (okEq) {
passed += 1;
} else {
failed += 1;
System.println("FAIL: " + msg);
}
}
// Отдельно для null: eq печатал бы значения (concat с null небезопасен)
function isNull(v, msg) {
if (v == null) {
passed += 1;
} else {
failed += 1;
System.println("FAIL: " + msg);
}
}
function summary() {
System.println("RESULT: passed=" + passed + " failed=" + failed);
return failed;
}
}