Переглянути джерело

Test driven development demo

master^2
bart.de.lepeleer@breedbeeld.cc 2 роки тому
джерело
коміт
772099de5e

+ 23
- 0
src/main/java/com/javafanatics/ActivityCalculator.java Переглянути файл

@@ -0,0 +1,23 @@
package com.javafanatics;

public class ActivityCalculator {

private static final int WORKOUT_DURATION_MIN = 45;

public static String rateActivityLevel(int weeklyCardioMinutes, int weeklyWorkoutSessions) {

if (weeklyCardioMinutes <0 || weeklyWorkoutSessions <0) {
throw new RuntimeException("Input below 20");
}

int totalMinutes = weeklyCardioMinutes + weeklyWorkoutSessions * WORKOUT_DURATION_MIN;
double avgDailyActivityMinutes = totalMinutes / 7.0;

if (avgDailyActivityMinutes < 20) {
return "bad";
} else if (avgDailyActivityMinutes < 40) {
return "average";
}
return "good";
}
}

+ 70
- 0
src/test/java/com/javafanatics/ActivityCalculatorTest.java Переглянути файл

@@ -0,0 +1,70 @@
package com.javafanatics;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;


import static org.junit.jupiter.api.Assertions.*;

class ActivityCalculatorTest {

@Test
void should_ReturnBad_When_AgeBelow20(){
//given
int weeklyCardioMinutes = 40;
int weeklyWorkouts = 1;

//when
String actual = ActivityCalculator.rateActivityLevel(weeklyCardioMinutes, weeklyWorkouts);

//then
assertEquals("bad", actual);
}

@Test
void should_ReturnAverage_When_AgeBetween20and40(){
//given
int weeklyCardioMinutes = 40;
int weeklyWorkouts = 3;

//when
String actual = ActivityCalculator.rateActivityLevel(weeklyCardioMinutes, weeklyWorkouts);

//then
assertEquals("average", actual);

}

@Test
void should_ReturnGood_When_AgeAbove40(){
//given
int weeklyCardioMinutes = 40;
int weeklyWorkouts = 7;

//when
String actual = ActivityCalculator.rateActivityLevel(weeklyCardioMinutes, weeklyWorkouts);

//then
assertEquals("good", actual);

}

@Test
void should_ThrowException_When_InputBelowZero(){
//given
int weeklyCardioMinutes = -40;
int weeklyWorkouts = 7;

//when
Executable executable = () -> ActivityCalculator.rateActivityLevel(weeklyCardioMinutes, weeklyWorkouts);


//then
assertThrows(RuntimeException.class, executable);

}




}

Завантаження…
Відмінити
Зберегти