Мы вообще изначально делали это под SpecFlow, чтобы были человекочитаемые тесты. Потом выяснилось, что в SpecFlow очень сложно написать и понять "Перейди на страницу X с состоянием A, B, C", а вызвать метод очень просто :) Обёртка над работой с UI уже была, просто переделали под fluent-интерфейс, так как оно достаточно удобно ложилось.
По поводу нет ли подмены тестируемого объекта, как раз и вписал нам это в минус, но тут точно пришлось идти на компромиссы. У нас физические устройства, которые полноценно тестировать может только человек: пока монетку не вставишь, процесс дальше не пойдёт. Поэтому пришлось искать компромиссы, а тесты последней надежды у нас живой человек :)
Мы на работе пилили несколько другой подход к тестированию приложения: при старте xUnit запускает в отдельном потоке само приложение. Дальше запускается Unit-тесты, который имеет доступ к UI, к ViewModel, ко всему, что зарегистрировано в DI. Также при старте мы переопределяем часть зависимостей (например, вместо реального API используем стаб, который отрезолвить в самом теле теста и настроить так, как нам нужно).
Screen поддерживает множество методов типа "ClickButton", "SetValue" и прочее. NavigateTo позволяет переходить между страницами, чтобы тестировать только нужную. TakeScreenshot собирает альбом экранных форм. Ради этого пришлось написать очень большую обвязку, но сами тесты писать одной удовольствие.
У нас из минусов, что по факту это не полноценное независимое тестирование. Из плюсов, полный контроль над приложением и его состоянием. У нас это самое состояние очень важно (API, подключенные физические устройства), поэтому позволяет писать очень глубокие тесты :)
А еще да, никаких экранов загрузки. Вся Долина Рудников была единым целым миром без швов.
Эм, это ремейк бесшовный, что очень приятно. В оригинале всё-таки было разделение на локации: наземная часть, Старая шахта, Кладбище орков, Новая Шахта, Храм Спящего. Точно не помню, но мне кажется, что старая башня Ксардаса тоже была отдельной локацией.
Открываем Tor, "Настройки" -> "Подключение" -> "Мосты". Через ТГ бот можно запросить список мостов, потом добавить в браузер. Спустя какое-то время все мосты становятся недоступными, поэтому нужно перезапрашивать.
Хм, я почему-то решил, что атаковали раньше, а опубликоваться они решили только сейчас. Добавлю коммент, спасибо.
Письмо точно от Яндекса? Зачем Яндексу давать подробности о "496 подобных учетных записей" частному лицу? Ненужная для пользователя информация. Техподдержка такое не сообщает.
Ну, вроде заслуживает доверия
Вы уверены что у вас достаточно оснований для таких утверждений? Если это не правда, то вы подставляете Habr.
А разве не это они прямо написали в своём письме? Кроме того, администрация Habr имеет полное право поправить меня, если я подобрал неверную формулировку.
То есть часть ложечек все-таки нашлась.
Только в той части, что на мою почту не приходило других писем типа восстановления пароля от других сервисов. Это меня сильно радует, конечно, но ситуацию в целом не меняет.
Добавил в UPD, 21 удалённое письмо - это отказ от рассылки, который автоматически туда падает. Неожиданно, но в "Журнале" нет информации о таких письмах
Первая мысль была именно про это, поэтому мучаю техподдержку что за 21 волшебное удалённое письмо. Хочется верить, что сброса паролей через почту не было так как:
В истории нет входящих писем кроме как от яндекса о смене пароля
Выборочно пробежался по всем самым важным сервисам, пароли на месте
Я считаю такой подход (с Unity) правильным, всё-таки пилить собственные велосипеды это может и интересно, но зачастую неэффективно :)
Я сам немного тыкал Unity, поэтому какие-то вещи оттуда пытался повторить у себя: сцены, GameObject, компоненты. Но это всё было сделано прямо ну в очень базовом варианте, чисто под мои задачи.
Если стоит цель разработать игру, то, Вы правы, гораздо лучше ориентироваться на специализированные движки/фреймворки/подходы. В моём случае цель была поглубже узнать Avalonia, ну и просто было интересно :)
Avalonia заточена под разработку десктоп приложений, и она делает это отлично. Но игры на ней стоит писать только для фана :)
Прошу прощения, я только сейчас понял вопрос. Да, Вы правы, я неправильно написал в том сообщении, шанс не может быть выше 1. В моей голове это число использовалось как соотношение количества выигранных денег к количеству поставленных. Т.е. казино в среднем не даст унести больше, чем поставил.
На сколько я помню, в математической записи шанс чаще указывается в виде числа, а не % (т.е. 1 == 100%, 0.5 == 50%). Это удобнее для вычисления, например, матожидания
Но по факту, казино всегда закладывает шанс выигрыша строго меньше 1 (например, рулетка 18 красных, 18 черных и 0, т.е. "ставлю на черное" это не 50% вероятность выигрыша). Любые попытки увеличить шанс сверх 1 караются в любом месте. Т.е., если в очки встроить функцию подсчёта карт, то погонят тряпками отовсюду.
p.s. Хотя вроде сейчас с подсчетом карт всё-таки сложнее, за счет того, что используется несколько колод. Плюс опять-таки, подсчёт карт легален с точки зрения закона. Тем не менее, не следует ожидать лояльного отношения к себе, если вы пытаетесь обанкротить казино.
Мы вообще изначально делали это под SpecFlow, чтобы были человекочитаемые тесты. Потом выяснилось, что в SpecFlow очень сложно написать и понять "Перейди на страницу X с состоянием A, B, C", а вызвать метод очень просто :) Обёртка над работой с UI уже была, просто переделали под fluent-интерфейс, так как оно достаточно удобно ложилось.
По поводу нет ли подмены тестируемого объекта, как раз и вписал нам это в минус, но тут точно пришлось идти на компромиссы. У нас физические устройства, которые полноценно тестировать может только человек: пока монетку не вставишь, процесс дальше не пойдёт. Поэтому пришлось искать компромиссы, а тесты последней надежды у нас живой человек :)
Мы на работе пилили несколько другой подход к тестированию приложения: при старте xUnit запускает в отдельном потоке само приложение. Дальше запускается Unit-тесты, который имеет доступ к UI, к ViewModel, ко всему, что зарегистрировано в DI. Также при старте мы переопределяем часть зависимостей (например, вместо реального API используем стаб, который отрезолвить в самом теле теста и настроить так, как нам нужно).
Пример теста выглядит вот так:
Screen поддерживает множество методов типа "ClickButton", "SetValue" и прочее. NavigateTo позволяет переходить между страницами, чтобы тестировать только нужную. TakeScreenshot собирает альбом экранных форм.
Ради этого пришлось написать очень большую обвязку, но сами тесты писать одной удовольствие.
У нас из минусов, что по факту это не полноценное независимое тестирование.
Из плюсов, полный контроль над приложением и его состоянием. У нас это самое состояние очень важно (API, подключенные физические устройства), поэтому позволяет писать очень глубокие тесты :)
Эм, это ремейк бесшовный, что очень приятно.
В оригинале всё-таки было разделение на локации: наземная часть, Старая шахта, Кладбище орков, Новая Шахта, Храм Спящего. Точно не помню, но мне кажется, что старая башня Ксардаса тоже была отдельной локацией.
Открываем Tor, "Настройки" -> "Подключение" -> "Мосты". Через ТГ бот можно запросить список мостов, потом добавить в браузер. Спустя какое-то время все мосты становятся недоступными, поэтому нужно перезапрашивать.
Хм, я почему-то решил, что атаковали раньше, а опубликоваться они решили только сейчас. Добавлю коммент, спасибо.
А разве не это они прямо написали в своём письме? Кроме того, администрация Habr имеет полное право поправить меня, если я подобрал неверную формулировку.
Только в той части, что на мою почту не приходило других писем типа восстановления пароля от других сервисов. Это меня сильно радует, конечно, но ситуацию в целом не меняет.
Добавил в UPD, 21 удалённое письмо - это отказ от рассылки, который автоматически туда падает. Неожиданно, но в "Журнале" нет информации о таких письмах
Первая мысль была именно про это, поэтому мучаю техподдержку что за 21 волшебное удалённое письмо. Хочется верить, что сброса паролей через почту не было так как:
В истории нет входящих писем кроме как от яндекса о смене пароля
Выборочно пробежался по всем самым важным сервисам, пароли на месте
Фильтры/пересылки проверял в день взлома, было пусто. По поводу почты, думаю, что да - скачали все письма и вложения
Наивно надеялся, что пароля+смс будет достаточно
На 3D нужно будет все модели отрисовать :)
Но если брать 2D, то предложили Godot посмотреть. Его возможностей должно за глаза хватить
Спасибо! Надеюсь, что оно будет на менее экзотическом фреймворке :)
В начале создаём сами себе проблему - потом доблестно её решаем :)
Спасибо :D
Я считаю такой подход (с Unity) правильным, всё-таки пилить собственные велосипеды это может и интересно, но зачастую неэффективно :)
Я сам немного тыкал Unity, поэтому какие-то вещи оттуда пытался повторить у себя: сцены, GameObject, компоненты. Но это всё было сделано прямо ну в очень базовом варианте, чисто под мои задачи.
Идеально! Пропущено "Песни скорби звучали", но это мелочи!
У меня была на диске версия от Акеллы, она всё-таки менее волнительная. Вторая озвучка Руссбит-М с "Кончина Бесрезена близка!" прямо до мурашек :)
Если стоит цель разработать игру, то, Вы правы, гораздо лучше ориентироваться на специализированные движки/фреймворки/подходы. В моём случае цель была поглубже узнать Avalonia, ну и просто было интересно :)
Avalonia заточена под разработку десктоп приложений, и она делает это отлично. Но игры на ней стоит писать только для фана :)
Разработка проекта давалась тяжело: несколько раз я забрасывал из-за того, что хотелось перепройти игру еще раз :)
Прошу прощения, я только сейчас понял вопрос. Да, Вы правы, я неправильно написал в том сообщении, шанс не может быть выше 1.
В моей голове это число использовалось как соотношение количества выигранных денег к количеству поставленных. Т.е. казино в среднем не даст унести больше, чем поставил.
На сколько я помню, в математической записи шанс чаще указывается в виде числа, а не % (т.е. 1 == 100%, 0.5 == 50%). Это удобнее для вычисления, например, матожидания
"Честное казино" - забавно звучит :)
Но по факту, казино всегда закладывает шанс выигрыша строго меньше 1 (например, рулетка 18 красных, 18 черных и 0, т.е. "ставлю на черное" это не 50% вероятность выигрыша). Любые попытки увеличить шанс сверх 1 караются в любом месте. Т.е., если в очки встроить функцию подсчёта карт, то погонят тряпками отовсюду.
p.s. Хотя вроде сейчас с подсчетом карт всё-таки сложнее, за счет того, что используется несколько колод. Плюс опять-таки, подсчёт карт легален с точки зрения закона. Тем не менее, не следует ожидать лояльного отношения к себе, если вы пытаетесь обанкротить казино.
У Вас тут опечатка - капитан Джек Воробей!