Giter Site home page Giter Site logo

percents100's Introduction

Задание 1. Синдром 100% (обязательное к выполнению)

Вы попали в команду максималистов, которые хотят, чтобы те автотесты, которые вы пишете, покрывали код на 100%.

Но вот незадача:

непонятно, что такое 100%; непонятно, как это сделать. Вспоминаем: покрытием кода у нас занимается JaCoCo, но он просто сигнализирует о том, что конкретно пошло не так.

Большинство подобных плагинов, помимо целей отчётности (report), содержат ещё цель check, которая обрушает сборку, если не выполнены определённые проверки.

Что вам нужно

Создать Мавен-проект с тестируемым кодом из листинга кода, он указан ниже по условию. Изучить документацию на плагин, а конкретно — на цель check. Внедрить эту цель во фазу verify. Обратите внимание, что эта цель и так публикуется в эту фазу. Настроить правила по покрытию на 100%. При этом нужно изучить разницу между счётчиками INSTRUCTION, LINE, BRANCH, COMPLEXITY. Вникнуть в тестируемый код. Выбрать один из счётчиков и добиться 100% покрытия через добавление новых тестов. Важно: использовать можно только один из следующих:

INSTRUCTION LINE BRANCH Обратите внимание на чеклист в начале условия, он содержит подсказки по внедрению JaCoCo в ваш Мавен-проект.

Тестируемый код, его как-либо редактировать нельзя:

package ru.netology.statistic;

public class StatisticsService { /**

  • Calculate index of max income
  • @param incomes - array of incomes
  • @return - index of first max value */ public long findMax(long[] incomes) { long current_max_index = 0; long current_max = incomes[0]; for (long income : incomes) if (current_max < income) current_max = income; return current_max; } } Класс с тестами, его надо будет расширить новыми тестами:

package ru.netology.statistic;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

public class StatisticsServiceTest {

@Test void findMax() { StatisticsService service = new StatisticsService();

long[] incomesInBillions = {12, 5, 8, 4, 5, 3, 8, 6, 11, 11, 12};
long expected = 12;

long actual = service.findMax(incomesInBillions);

assertEquals(expected, actual);

} } Итого: отправьте на проверку ссылку на репозиторий GitHub с вашим проектом.

percents100's People

Contributors

oigum avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.