TDD FizzBuzz

2020-01-02  本文已影响0人  Feng_001

FizzBuzz 说明

Write a program that prints the numbers from 1 to 100.
But for multiples of three print "Fizz" instead of the
number and for the multiples of five print "Buzz". For
numbers which are multiples of both three and five
print "FizzBuzz".
1、 输出从1-100 的数字
2、 遇到3的倍数输出Fizz
4、 遇到5的倍数输出Buzz
5、 遇到3和5的倍数输出FizzBuzz

通过TDD (测试驱动开发)的方式实现

5520964-e642c964d2e8d3bc.png
参见:TDD 三原则
测试代码
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class FizzBuzzTest {
    @Test
    void should_1_1() {
        String expected = "1";
        String result = FizzBuzz.fizzBuzz(1);
        assertEquals(expected, result);
    }
    @Test
    void should_fizz_3() {
        String expected = "Fizz";
        String result = FizzBuzz.fizzBuzz(3);
        assertEquals(expected, result);
    }
     @Test
     void should_buzz_5() {
        String expected = "Buzz";
        String result = FizzBuzz.fizzBuzz(5);
        assertEquals(expected, result);
    }
    @Test
    void should_fizzbuzz_15() {
        String expected = "FizzBuzz";
        String result = FizzBuzz.fizzBuzz(15);
        assertEquals(expected, result);
    }    
    @Test
    void should_print_1_100() {
        String expected = "FizzBuzz";
        FizzBuzz.printFizzBuzz();
    }
}
实现代码
public class FizzBuzz{

    public static void printFizzBuzz(){
      for(int i=1;i<=100;i++){
          System.out.println(fizzBuzz(i));
      }
    }
  
    public static String fizzBuzz(int number){
       String result=String.valueOf(number);
       if(number%3==0) {
         result="Fizz";
         if(number%5==0) {
            result="FizzBuzz";
         }
       }else if(number%5==0) {
         result="Buzz";
       }
       return result;
    }
}
TDD的实现过程

FizzBuzz 做为TDD入门的,比较容易直观的能够体验TDD。下面附上TDD的开发过程。花3秒钟向你显示如何通过测试驱动开发。
附上一个比较好的 FizzBuzz的实现 ,感觉不太符合TDD原则的第三条。

fizzbuzz.gif
特别感谢 bobdeng 花了一下午的时间陪我结队编程,并给我讲述了并分享了极限编程和TDD的概念和应用。非常感谢!!!
上一篇 下一篇

猜你喜欢

热点阅读