Sobes.tech
Back to questions
Middle+
3

Какие unit-тесты вы бы написали для функции FizzBuzz?

Companies where asked
Ifellow

Answer from AI

sobes.tech AI

Для функции FizzBuzz стоит написать следующие unit-тесты:

  1. Проверка деления на 3: для входных значений, кратных 3, функция возвращает "Fizz".
  2. Проверка деления на 5: для входных значений, кратных 5, функция возвращает "Buzz".
  3. Проверка деления на 15: для входных значений, кратных 15, функция возвращает "FizzBuzz".
  4. Проверка чисел, не кратных 3 или 5: функция возвращает строковое представление числа.
  5. Проверка граничных значений, например 0 или отрицательных чисел, если функция их поддерживает.

Пример на JavaScript:

function fizzBuzz(n) {
  if (n % 15 === 0) return "FizzBuzz";
  if (n % 3 === 0) return "Fizz";
  if (n % 5 === 0) return "Buzz";
  return n.toString();
}

test('returns Fizz for multiples of 3', () => {
  expect(fizzBuzz(3)).toBe('Fizz');
  expect(fizzBuzz(6)).toBe('Fizz');
});

test('returns Buzz for multiples of 5', () => {
  expect(fizzBuzz(5)).toBe('Buzz');
  expect(fizzBuzz(10)).toBe('Buzz');
});

test('returns FizzBuzz for multiples of 15', () => {
  expect(fizzBuzz(15)).toBe('FizzBuzz');
  expect(fizzBuzz(30)).toBe('FizzBuzz');
});

test('returns number as string for other numbers', () => {
  expect(fizzBuzz(7)).toBe('7');
  expect(fizzBuzz(8)).toBe('8');
});