• С чего начать учить Unit тестирование?

    vabka
    @vabka Куратор тега ASP.NET
    Токсичный шарпист
    С чего начать учить Unit тестирование?

    С покрывания тестами простых модулей (которые не зависит от других модулей), которые не имеют побочных-эффектов (не лезут на диск или в сеть, не спрашивают ничего у пользователя).
    Модулем может быть метод или класс.

    Можно ещё почитать книжку

    Видел что существует много их, типу Moq, XUnit и тд.

    Это инструменты для решения разных задач.
    Moq - для создания моковых объектов
    XUnit - непосредственно фреймворк для описания и запуска тестов.
    Ответ написан
    2 комментария
  • Как остановится у массива, если нашел число?

    @Lipovnik
    Заведи bool который будет отвечать за вхождение в массив ненужных тебе значений, на выходе проверяй этот bool и решай выводить или нет строчку.
    И поработай над своим if, он у тебя всегда truе
    Ответ написан
    Комментировать
  • Как написать Regex на замену string на опеределенный int?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Здесь регулярка и не нужна:
    const query = 'foo';
    let page = +query;
    if (isNaN(page) || page <= 0) {
        page = 1;
    }


    Но если хочется, можно и заморочиться:
    const query = '-1';
    let page = 1;
    
    if (/^\d+$/.test(query)) {
        page = +query;
        // Любители плохо читаемого кода могут написать так и избавиться от условия ниже:
        // page = +query || 1
    }
    
    if (page <= 0) {
        page = 1;
    }
    Ответ написан
    1 комментарий
  • Как указать в Startup путь станартный Web api?

    @Miron11
    Пишу sql 20 лет. Срок :)
    По идее в Web API не существует реализации. Вы сами создаете и физический и логический слой службы. А Web API дает Вам только набор ( весьма запутанных ) стандартных сочленений различных устройств.
    Поэтому так или иначе Вам необходимо будет выбрать платформу, на которую ляжет обертка Web API, а сверху реализация продукта.
    Отказавшись от физической реализации, и взяв на себя полностью ответственность за её создание Вы выигрываете в простоте платформы ( это не ирония и не ехидство, это действительно так ). Поскольку, несмотря на количество очень тесно состыкованных сочленений и оберток Wrb API, правила их состыковки единообразны, лекала легко поддаются интуитивному запоминанию, а материализация не такое уж и сложное дело.
    MVC, с другой стороны, это уже реализация, и здесь и маршрутизация и каждое отступление от предписанных реализацией шагов, это практически безнадежное предприятие.
    По этой причине в UI пользуются MVC. Здесь меньше внимание, насколько оптимально машина верстает страничку, а вот возможность расцветить текст образами и эффектами, чтобы захватить воображение пользователя, есть все инструменты.
    Web API это платформа, когда каждый винтик машины необходимо подчинить передаче данных. Это позволяет на связке из нескольких сравнительно дешевых двух - процессорных машин строить предприятия по сборке самолетов, экономя на компьютерах миллионы долларов.
    Ответ написан
    Комментировать
  • Как выкинуть кастомное исключение?

    @cicatrix
    было бы большой ошибкой думать
    Проброс исключения - самое "дорогое" из всех возможных решений проблемы в плане производительности. К тому же, это и не исключение вовсе, а вполне штатная ситуация. Простая проверка в виде вызова bool CustomerExists будет выглядеть здесь гораздо уместнее. К тому же, эта проверка у вас уже производится.
    А так, да, класс любого исключения должен быть наследником System.Exception
    Ответ написан
    Комментировать
  • Как работать в строке с "{"?

    edward_freedom
    @edward_freedom
    Там в подсказках было, что тебе нужно продублировать фигурные скобки и отсчет начинается с 0
    Console.WriteLine("new Item{{ Thumbnail = {0} }}", item.Thumbnail);
    Ответ написан
    Комментировать
  • Как вывести данные из JSON?

    black1277
    @black1277
    Вольный стрелок
    useEffect в котором
    setProduct(responseId.data)
    console.log(responseId.data)

    выполняется один раз, и при смене id ничего не происходит(потому что в зависимостях стоит [] - пустой массив). Попробуйте вторым аргументом в useEffect поставить id - тогда все должно получится. Нужно в виде масcива [id]
    Ответ написан
    2 комментария
  • Как преоброзовать с одного типа в другой?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Воспользоваться мапером или вручную создать новый Product и присвоить значения полей из ProductDto
    Ответ написан
    2 комментария
  • Как вытащить данные с backend?

    useEffect(() => {
      fetch("http://localhost:5001/xxx")
        .then(data => data.json())
        .then(response => setData(response))
        .catch(error => console.log(error))
    }, []);
    Ответ написан
    1 комментарий
  • Как сделать merge в ветку git-flow?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    1) По умолчанию, git push отправляет на сервер только одну ветку — текущую.
    Чтобы отправить ветку developer, сначала переключитесь на неё.
    git checkout developer
    git push -u

    Либо можно не переключаться, но явно указать, что и куда отправить
    git push -u origin developer
    Эта команда говорит: возьми ветку developer и отправь в репозиторий origin.
    Флаг -u нужен чтобы сразу связать локальные ветки с создаваемыми удалёнными.

    Хотя можно сказать гиту, чтобы он отправил сразу все локальные ветки
    % git push -u --all 
    Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
    To https://github.com/.../repo.git
     * [new branch]      developer -> developer
    Ветка «developer» отслеживает внешнюю ветку «developer» из «origin».
    Ветка «feature/feature_some1» отслеживает внешнюю ветку «feature/feature_some1» из «origin».
    Ветка «feature/feature_some2» отслеживает внешнюю ветку «feature/feature_some2» из «origin».
    Ветка «master» отслеживает внешнюю ветку «master» из «origin».

    Но если у вас есть локальная ветка, которую вы не хотите светить на сервере, то флаг -all не подойдет ))

    2) Синтаксис названия feature/feature_some1 это не две ветки, feature и вложенная feature_some1
    Это всё равно одна ветка. Но в графических клиентах такие ветки отображаются как вложенные, для удобства.
    Создав вторую ветку с именем feature/feature_some2 получим такую картинку

    604841b7bfdc2368381419.png
    Но никакой ветки feature не существует.
    % git branch    
      developer
      feature/feature_some1
    * feature/feature_some2
      master


    3) Как сделать merge в ветку developer?
    Перед слиянием убедиться, что рабочая копия не имеет незакоммиченных изменений.
    Либо дропните незафиксированные правки либо создайте коммит с ними.
    Иначе git не знает что с ними делать и выдал вам ошибку.
    Ответ написан
    1 комментарий
  • Как вызвать все методы класса и передать параметр?

    @P40b0s
    Можно и без рефлексии, что-то типа того:
    public interface IMessage
        {
            void SendMessage(string msg);
        }
        public abstract class MessageBase : IMessage
        {
            public virtual void SendMessage(string msg) => Console.WriteLine($@"{Name}:parameter={msg}");
            public abstract string Name { get; }
        }
        public class Bye : MessageBase {public override string Name => "Bye"; }
        public class Hello : MessageBase {public override string Name => "Hello"; }
        public class Welcome : MessageBase { public override string Name => "Welcome";}
    
        class ReflectMethod
        {
            public static void InvokeMethod(string[] array)
            {
                List<IMessage> messages = new List<IMessage>()
               {
                   new Bye(),
                   new Hello(),
                   new Welcome()
               };
                for (int counter = 0; counter < array.Length; counter++)
                {
                    messages[counter].SendMessage(array[counter]);
                }
            }
        }
    Ответ написан
    2 комментария
  • Как вызвать все методы класса и передать параметр?

    ayazer
    @ayazer
    Sr. Software Engineer
    не совсем понимаю что вы пытаетесь решить, но в конкретно данном примере можно как-то так:

    class ReflectMethod
        {
            public static class Methods
            {
                public static void Bye(string parameter) => Console.WriteLine("Bye:parameter={0}", parameter);
                public static void Hello(string parameter) => Console.WriteLine("Hello:parameter={0}", parameter);
                public static void Welcome(string parameter) => Console.WriteLine("Welcome:parameter={0}", parameter);
            }
    
            public static void InvokeMethod(string[] array)
            {
                Type instance = typeof(Methods);
                MethodInfo[] methods = instance.GetMethods(BindingFlags.Static | BindingFlags.Public);
    
                var currentArgNumber = 0;
                foreach (MethodInfo method in methods)
                {
                    method.Invoke(instance, new[] { array[currentArgNumber++] });
                }
            }
        }
    Ответ написан
    Комментировать
  • Как найти повторяющиеся элементы в списке?

    ayazer
    @ayazer
    Sr. Software Engineer
    судя по описанию и тегам вопрос все-же "как найти индексы повторяющихся элементов используя linq"

    var lst = new List<int>() { 1, 2, 3, 5, 1, 6, 5 };
    
                var result = lst.Select((el, idx) => (el, idx))
                    .GroupBy(c => c.el)
                    .Where(g => g.Count() > 1)
                    .SelectMany(g => g.Select(c => c.idx).ToList())
                    .ToList();  // [0, 4, 3, 6]
    Ответ написан
    Комментировать
  • Как работать со сортированным списком?

    freeExec
    @freeExec
    Участник OpenStreetMap
    foreach (var pair in students) 
    { 
      Student s = pair.Key;
    }
    Ответ написан
    Комментировать
  • Как пройтись массивом делегатов по массиву объектов класса?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Цикл да - дичь. Я бы написал что-то типа
    var studentActions = students.Select(student =>
    		() =>
    		{
    			student.Feed();
    			student.Wash();
    			student.Grant();
    			student.PutSleep();
    		})
    	.ToArray();
    Ответ написан
    Комментировать
  • Как вывести строку при определенном выборе?

    idShura
    @idShura
    А как сделать проверку для case?

    какую проверку?

    Или возможен ли какой-то другой подход?

    Вместо case можно использовать dictionary
    Ответ написан
    Комментировать
  • Как переопределить стиль html блока?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Адекватный метод — поискать в документации, как переопределять.
    В половину адекватный — попробовать передать объект со стилями.
    Неадекватный метод — использовать богомерзкие !important-ы.
    Ответ написан
    Комментировать
  • Как сделать зависимость одного компонента к другому?

    0xD34F
    @0xD34F Куратор тега React
    Массив данных для вывода передаётся в ItemsList из родительского компонента, в кнопку из родительского же компонента передаётся обработчик клика, в котором количество передаваемых в ItemsList элементов увеличивается.

    https://jsfiddle.net/oLce047k/
    Ответ написан
    Комментировать
  • Как задать стиль react компоненту?

    kirbi1996
    @kirbi1996
    В родителе передаешь className разный, либо как вариант можешь попробовать написать инлайн style={{backgroundColor: "#fff"}}, но это костыльный способ
    Ответ написан
    Комментировать
  • Как задать стиль react компоненту?

    GreyCrew
    @GreyCrew
    Full-stack developer
    Передайте ему нужный className, через props
    Ответ написан
    Комментировать