Как называются тесты Вконтакте

Это был обычный будний день, я начал писать очередной обычный тест, но при написании названия теста что-то пошло не так:

testCustomerRedirectUrlAfterSelectLastTransactionProcessShouldContainsUrlToConfirmRecurringProfilePageWhenTransactionTypeIsCreateRecurringProfile

Примерно на середине я начал осознавать что происходит что-то не то, но я не остановился и дописал название теста до конца. Коллеги не оценили такое длиннющее название теста, но мне оно нравится.

Сейчас используется что-то вроде testCorrectChangeCustomerRedirectUrl , а детали того что тест тестирует скрыты внутри теста. Я не могу понять это лвлап, либо я устал под вечер. Вопрос: Каковы критерии выбора хорошего названия теста? UPD: Пожалуйста, приведите названия тестов из ваших проектов.

  • юнит-тесты
  • test-driven-development

Отслеживать
Andrey Kolomensky
задан 2 дек 2015 в 14:47
Andrey Kolomensky Andrey Kolomensky
2,168 2 2 золотых знака 17 17 серебряных знаков 39 39 бронзовых знаков

ТЕСТЫ ВКОНТАКТЕ ЭТО ЖЕСТЬ…

Ребятам которые хотят закрыть вопрос сообщаю что это важная тема, обсуждение которой ведется в книгах по TDD, создаются и применяются паттерны наименования, обсуждается что тестовые методы применяются в ином контексте чем методы кода проекта. Хотите чтобы пользователи рунета сами собирали эту информацию? Пожалуйста.

2 дек 2015 в 15:11

Опять закрывальщики понабежали. Господа, ну давайте включать голову. Если вам вопрос кажется непонятным только потому, что вы не в теме, это не значит, что это бесполезный вопрос. К тому же, как я уже писал, в программировании есть ряд областей, в которых в принципе невозможно дать однозначный ответ, но это важные области. Самый очевидный пример — проектирование ПО.

2 дек 2015 в 17:13
2 дек 2015 в 17:14
2 дек 2015 в 17:19

Р. Мартинс писал, что названия должны быть читаемыми (близки к естественному языку). Может, всё-таки, прислушаться к коллегам? Это же им потом читать и вам (спустя некоторое время).

19 дек 2015 в 20:29

7 ответов 7

Сортировка: Сброс на вариант по умолчанию

Название для тестов не надо выбирать красивое. Название нужно выбирать функциональное и по возможности короткое — чтобы по минимальному количеству символов было понятно, что и под какими условиями он тестирует, а также чтобы можно было отличить конкретный тест от тысяч других.

Распространенные шаблоны наименования такие:

  • TestClass_TestMethod_ConditionAndExpectedResult (для юнит-тестов)
  • TestMethod_Condition_ExpectedResult (для юнит-тестов)
  • ConditionAndExpectedResult (для интеграционных тестов, которые тестируют целые блоки функциональности через некоторую входную точку)

При этом если у вас в частях Condition/ExpectedResult слишком много разных условий/результатов, объединенных по «И», то вам нужно пересмотреть либо главную цель теста (что он тестирует), либо главное условие, которое отличает тест от других, и разбить его на несколько отдельных тестов.

Еще по теме:  Как сделать китайский ник в ВК

ПРОХОЖУ ТЕСТЫ ВО ВКОНТАКТЕ!

Я ратую прежде всего за то, что название должно быть информативным, но при этом настолько коротким, насколько возможно. Тут точно так же как и со всем остальным кодом — чем меньше кода, тем меньше времени нужно чтобы его понять, тем проще разбираться с ним. Судя по вашему названию, это не простой маленький юнит-тест, а что-то побольше, поэтому совсем коротким названием тут не обойтись. В вашем случае, если тест класс у вам уже для Customer , я бы ограничился названием SelectLastTransactionProcess_CreateRecurringProfile_RedirectUrlShouldContainConfirmation . В вашем названии много повторений слов: transaction, url, recurring profile и т.д. Они избыточны.

Между длиной и информативностью названия безусловно должен быть баланс. Достаточно, чтоб названия были понятны разработчикам внутри проекта, которые уже обладают контекстом и способны понять, о чем этот тест. И если для этого нужно длину названия сделать не 30 символов, а 40, сделайте.

Но не нужно стремиться к тому, чтоб названия были понятны каждому встречному, попутно рассказывая обо всей системе, поскольку это приводит к таким вот километровым названиям, в которых сложно разобраться. Посмотрите на свой обычный код, посмотрите на названия методов. Вы ведь не описываете в названии метода каждую его деталь, каждую строчку? Вы описываете нечто главное, а остальное спрятано внутри. Точно так же и с тестовыми методами.

Кто-нибудь может ещё рассказать что делать с названиями интеграционных тестов, > где 100500 различных условий?

К примеру биллинг, принимает на вход 5-10 видов прайс-листов и в зависимости от их комбинаций и комбинаций их параметров (тоже примерно 5-10) должен выдавать различные суммы на выход. Контейнер отправляемый в биллинг занимает ~30 строчек.

Если в стиле поста называть тесты то это будет testPayoutDebtorToGateOntopGateTransactionAmountGateToCreditorFlatPayinDebtorTo‌​GateOntopTotalTransactionAmountGateToCreditorOntopTransactionAmount , причем не с полным контекстом.

Нужно рассчитать итоговую сумму исходя из того что прайс-листы могли быть настроены следующим образом: Тип комиссии прайс-листа типа основной сделки — inside/total, комиссия 0.1% + 0.5руб cверху, расчет вести от оборота. Второй комиссионный прайс-лист ontop/gate.. ещё в таком же стиле раз 10 и пара неявных зависимостей прайс-листов друг от друга.

Я бы сказал, что вам нужен параметрический тест. Это такой тест, который одним кодом тестирует разные наборы данных. Например, в терминах тестового фреймворка xUnit параметрический тест метода Calculator.Add() может выглядеть так:

[Theory] // это параметрический тест [InlineDate(1, 2, 3)] // наборы данных, т.е. параметры теста [InlineDate(0, 1, 1)] [InlineDate(-1, 1, 0)] public void Calculator_Add_ShouldReturnCorrectResult(int a, int b, int expectedResult)

Еще по теме:  Что значит история доступна не всем Вконтакте

С параметрическими тестами вам не нужно перечислять все условия в названиях — название содержит только суть теста, что именно тестируется, конкретный кейс. В вашем случае это что-то вроде РасчетИтоговойСтоимости_ПоОсновнойИДополнительнойСделке (на английский сами переведете, вам область понятнее). А выглядеть ваш тестовый метод может так (при этом в xUnit тестовые данные можно подставлять из свойства и даже из отдельного объекта):

[Theory] [PropertyData(«PriceData»)] // тестовые данные находятся в отдельном свойстве public void РасчетИтоговойСтоимости_ПоОсновнойИДополнительнойСделке( ComissionType mainComissionType, Comission mainComission, CalculationType mainCalculationType, ComissionType auxComissionType, Comission auxComission, CalculationType auxCalculationType, double expectedPrice) < // код теста >public static IEnumerable PriceData < get < // данные можете захардкодить, а можете прочитать из файла return new[] < new object[] < // основная сделка ComissionType.InsideTotal, new Comission(0.1, 0.5), CalculationType.ОтОборота, // дополнительная сделка ComissionType.OnTopGate, new Comission(0.42, 0.99), CalculationType.ОтБалды, // результат 100500 >, // и так далее для других пар >; > >

Я думаю во многих тестовых фреймворка есть возможность создания параметрических тестов. Способ задания параметров может отличаться, но суть останется та же: данные выносятся в секцию с данным, в названии теста остается только название кейса.

Дополнительную информацию о параметрических тестах можной найти в блоге Сергея Теплякова.

Источник: ru.stackoverflow.com

40 психологических тестов, которые можно пройти онлайн и которые расскажут о вас все (Даже то, о чем вы и не подозреваете)

Психологические тесты очень популярны и могут развлечь не хуже сериала с закрученным сюжетом. Но создавались они все же для определения и выявления важных качеств и возможных отклонений в психике человека. Также они помогают разобраться со своими внутренними противоречиями. Но при этом не стоит забывать, что корректно интерпретировать их результаты может только психолог.

Поэтому если вы, пройдя тест, узнаете о себе нечто тревожное, то не стоит тотчас же паниковать. Сперва обратитесь к специалисту.

ADME знает, как важно изучить от и до свое внутреннее «я», и предоставляет возможность узнать о своей личности нечто новое и волнительное с помощью авторитетных психологических тестов.

Типы личности и характера

40 психологических тестов, которые можно пройти онлайн и которые расскажут о вас все (Даже то, о чем вы и не подозреваете)

Знание о том, каким типом личности вы обладаете и какие характеристики вам присущи, поможет лучше понять себя. Например, как и с какими людьми вам строить взаимоотношения, какой вид деятельности вам больше подходит и как правильно самореализоваться.

  • Тест Люшера позволит определить причины вашего стресса и то, к каким психофизиологическим симптомам он может привести.
  • Прогрессивные матрицы Равена — тест, определяющий уровень интеллектуального развития.
  • Тест Майерс — Бриггспредназначен для определения одного из 16 типов личности и поможет выявить индивидуальные предпочтения и склонности.
  • Тест Сонди дает ответы на многие вопросы, в том числе объясняет выбор человеком любимых, друзей, профессии и указывает на предрасположенность к определенным заболеваниям.
  • Тест Айзенка направлен на определение типа эмоционального поведения: вы больше интроверт или экстраверт.
  • Методика диагностики темперамента Яна Стреляупоможет определить тип темперамента и то, как вы реагируете на стрессовые ситуации.
  • Тест Ефремцева — на определение ведущего типа восприятия: аудиального, визуального или кинестетического.
  • Тест СМИЛ из 566 вопросов психологи используют для составления наиболее точного портрета личности.
  • Личностный опросник Кеттелла служит для определения особенностей характера, склонностей и интересов личности.
  • Тест Холла поможет определить уровень эмоционального интеллекта — способности человека распознавать эмоции, понимать намерения, мотивацию и желания других людей и свои собственные, а также способности управлять своими эмоциями и эмоциями других людей для решения практических задач.
  • Тест самоактуализацииСАТ позволит определить уровень успешности в разных областях.
  • Тест на определение типа мышления: в зависимости от психических и физиологических особенностей человека обычно преобладает конкретный тип мышления — метод обработки и анализа полученной информации. Виды: словесно-логический, наглядно-образный, абстрактно-символический, творческий, предметно-действенный.
Еще по теме:  Как переслать видео из ВК в Ватсап на айфоне без ссылки

Типы социального взаимодействия

Тесты на типы социального взаимодействия помогут вам понять, как вы строите отношения с окружающими, насколько вы агрессивны, конфликтны и насколько хорошо умеете адаптироваться в коллективе.

  • Тест Лирина определение особенностей ваших взаимоотношений с окружающими.
  • Тест на адаптивностьрасскажет, насколько успешно и как именно вы адаптируетесь в коллективе.
  • Тест Ассингера на определение уровня агрессивности в отношениях расскажет, насколько вы агрессивны при общении.
  • Тест Томаса помогает определить ваш тип поведения в конфликтной ситуации.
  • Тест коммуникативной социальной компетентностипоможет определить, насколько вы общительны и какой тип коммуникации вы предпочитаете.
  • Оценка самоконтроля в общениирасскажет, насколько вы открыты и непосредственны, умеете ли себя контролировать при общении.

Источник: adme.media

интерактив

Каждый из нас хоть раз задумывался начать заниматься музыкой. Предлагаем тебе выяснить, в какую группу ты мог бы попасть?

Другой интерактив

Хорошо ли ты знаешь песни группы «Руки Вверх!»?

На них выросло не одно поколение. Эти треки сыграли ключевую роль в жизни тысяч людей! Сколько признаний в любви было сказано под «Алёшку»… Поностальгируй и проверь, как хорошо ты помнишь легендарные композиции!

«Имя твоё — птица в руке»

Пройти тест

Угадай, в каком фильме снималась эта звезда?

Пройти тест

Звездой какого клипа ты могла бы стать?

Пройти тест

КАКУЮ ПЕСНЮ МОГЛИ БЫ ПОСВЯТИТЬ ТЕБЕ?

Пройти тест

Получи свое персональное предсказание!

Далее | 01:00

Караоке хит 16+

Потом | 02:00

Ловец слов 16+

Рейтинг
( Пока оценок нет )
Загрузка ...