tattami, Я из вопроса не понял, что вам нужен Windows
К сожалению, я в Windows не специалист от слова совсем, но Claude AI дал совет распарсить вывод команды net
cmd := exec.Command("net", "user", currentUser.Username, "/domain")
output, err := cmd.Output()
// И дальше парсим текст, который у нас в переменной output
// ...
domanskiy, Ну напишите в тесте класс-обёртку, который будет наследовать тестируемый класс и иметь публичный метод, который просто будет вызывать приватный (сделайте его protected). Вот этот публичный метод и протестируйте. И без всякой рефлексии и возможных подводных камней.
Если не получится, то что-то вы там сильно не так делаете
1. А сам тест-то почему не показываете? Напишите, как именно вы через ReflectionClass тестируете.
2. Наследование - это зло. Наследоваться от чего-то там во фреймворке - это максимум того, где следует применять наследование, потому что иначе нельзя. В своём коде старайтесь использовать композицию вместо наследования. Вы неожиданно обнаружите, что пропал целый класс проблем.
blecked88, Миллион лет не пользовался Gin. Возможно, они накрутили что-то, но сомневаюсь. Что-то вы не так передаёте, скорей всего. Ведь если не пишет ошибку, то, метод видит. Он просто может пустой слайс выдавать по какой-то причине
В таких случаях у меня есть простой и одновременно полезный совет: запустите этот код в дебаггере, останавливайтесь в каждой строчке и смотрите значения переменных.
Кстати, скрипт не оптимален, цикл должен начинаться не м нуля, а с единицы, потому что нулевой элемент мы уже взяли, и если начинаем с нуля, то сравниваем нулевой элемент с самим собой на первом шаге
Ankhena
1. Если label у чекбокса виден, текст контрастен и легко читается, и на него можно навести фокус, то проблем с доступностью не будет.
2. Если правильно стилизовать label, так, чтобы сразу было понятно, нажата кнопка (переключатель) или нет, то и у зрячих людей проблем не будет.
Т.е. вам, фактически нужен переключатель, а не кнопка?
Логика действия кнопки: нажал - она зажата, отпустил - она отжалась.
Логика действия переключателя: нажал один раз - вкл, нажал второй раз - выкл.
Так?
Такого не знаю.
Но ведь можно сделать более адекватно. Смотрите, Firebase ведь в конечном итоге хранилище данных. Т.е. вам нужно н в основную программу вытащить данные из Firebase по какому-то критерию. И положить точно так же.
Так вот, на первом этапе примените паттерн Repository и вытащите всё, что касается работы с данными в функции этих репозиториев.
Эту работу можно делать частями, даже не прерывая внедрение других фичей.
Когда всё, что связано с данными окажется внутри репозиториев, а остальной код будет доставать данные только из репозиториев, тогда уже наступит второй этап, на котором переписать код для другой базы внутри этих репозиториев будет очень легко.
Василий Дёмин,
Самое нормальное решение.
Многие при переходе с динамических языков пытаются неосознанно притащить в язык со статической типизацией весь мусор оттуда, накопленный за много лет опыта.
Плюс к этому Go не просто язык со статической типизацией, а язык, который всеми своими фибрами будет сопротивляться подобным практикам, неоправданно усложняющим код и делающим его трудно читаемым и трудно отлаживаемым.