Giter VIP home page Giter VIP logo

unit3's Introduction

Урок 3. Качество тестов

Classwork

task001:

Протестировать калькулятор с архитектурой MVC и оценить качество покрытия.

Задание №1 Создайте набор тестов, полностью покрывающих все ветви кода функции fizzBuzz. Эта функция принимает на вход число и возвращает "Fizz", если число делится на 3, "Buzz", если число делится на 5, и "FizzBuzz", если число делится на 15. Если число не делится ни на 3, ни на 5, ни на 15, функция возвращает входное число в виде строки.

Задание №2 Разработайте тесты для метода firstLast6, где на вход подается массив чисел, а метод возвращает true, если первое или последнее число в массиве равно 6, иначе false.

Задание №3 Создайте тесты, обеспечивающие полное покрытие кода метода calculatingDiscount, который принимает сумму покупки и размер скидки, затем вычисляет и возвращает сумму с учетом скидки. Метод должен обрабатывать исключения, связанные с некорректным размером скидки или отрицательной суммой покупки.

Задание №4 Разработайте метод luckySum и напишите для него тесты. Этот метод принимает на вход три числа и возвращает их сумму. Однако, если одно из чисел равно 13, то оно не учитывается при подсчете суммы. Так, например, если b равно 13, то считается сумма только a и c. public int luckySum(int a, int b, int c) { ... }

Задание №5 Примените подход TDD для создания нового класса MoodAnalyser, который оценивает настроение выраженное во фразах.

Задание №6 Разработайте класс User с методом аутентификации по логину и паролю. Метод должен возвращать true, если введенные логин и пароль корректны, иначе false. Протестируйте все методы

Задание №7 Добавьте класс UserRepository для управления пользователями. В этот класс должен быть включен метод addUser, который добавляет пользователя в систему, если он прошел аутентификацию. Покройте тестами новую функциональность

Homework

Задание 0. (необязательное) *Попробовать самостоятельно решить задачи, которые не успели решить на семинаре. Сдавать решение не нужно.

task001:

*Задание 1.

Напишите тесты, покрывающие на 100% метод evenOddNumber, который проверяет, является ли переданное число четным или нечетным. (код приложен в презентации)

Задание 2.

Разработайте и протестируйте метод numberInInterval, который проверяет, попадает ли переданное число в интервал (25;100). (код приложен в презентации)

task002:

Задание 3. (необязательное)

Добавьте функцию в класс UserRepository, которая разлогинивает всех пользователей, кроме администраторов. Для этого, вам потребуется расширить класс User новым свойством, указывающим, обладает ли пользователь админскими правами. Протестируйте данную функцию.

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.