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









网友评论