cyber-dojo.orgでTypeScriptで頭の体操とテスト駆動開発の練習をする

TypeScriptで頭の体操とテスト駆動開発の練習をする

cyber-dojo.orgというサイトをAIITのIT・CIOという授業で知りまして、試しに触ってみました。

cyber-dojo.orgは、テスト駆動開発を学ぶサイトでGoやPython、Java、Rustと様々なプログラミング言語を使った実装をブラウザ上で行うことができます。 TypeScriptの場合、テストフレームワークはJestに限られますが、その他のプログラミング言語では知名度の高いテストフレームワークは大体網羅しているようです。

複数の問題数が用意されていて、お題に対してテストと実装を書くのですが、ざっと見た感じ結構難易度が高そう。

今回は、試しに簡単なFizzBuzzの問題をTypeScriptで書いてみました。

import { fizz_buzz } from './hiker';

describe('fizz_buzz', () => {
  it('3の倍数ならFizz', () => {
    expect(answer(3)).toEqual("Fizz");
  });

  it('5の倍数ならBuzz', () => {
    expect(answer(5)).toEqual("Buzz");
  });

  it('15の倍数ならFizzBuzz', () => {
    expect(answer(15)).toEqual("FizzBuzz");
  });
});
export function fizz_buzz(num: number): string | number {
  if(num % 15 === 0) {
    return "FizzBuzz";
  }
  if(num % 3 === 0) {
    return "Fizz";
  }
  if(num % 5 === 0) {
    return "Buzz";
  }
  return num;
}

テストから書いて実装をする流れを身につけるのに良さそうなのと、入社試験の題材の参考にも使えそうです。

© 2022 watsuyo / This site uses Google Analytics.