public class Car {
private final Engine = new Engine();
private void start(){
putOnNeutral();
applyBrakes():
this.engine.start();
}
private void putOnBrakes(){
//business logic
}
private void applyBrakes(){
//business logic
}
}
# PRESENTING CODE
public class Car {
private final Engine;
public Car(Engine engine){
this.engine= engine;
}
private void start(){
putOnNeutral();
applyBrakes():
this.engine.start();
}
}
# TDD
public class CarShould {
@Test
public void startCarEngine(){
Car car = new Car();
car.start();
//nothing to assert!!
}
}
# PRESENTING CODE
public class CarShould {
@Test
public void startCarEngine(){
Engine engine = new FakeEngine();
Car car = new Car(engine);
car.start();
assertThat(engine.isOn()).IsTrue();
}
}
# PRESENTING CODE
// Measure the distance between two points
const distanceBetween = ( p1, p2 ) => {
const dx = p1[0]-p2[0];
const dy = p1[1]-p2[1];
return Math.sqrt( dx*dx + dy*dy );
}
distanceBetween([10,10], [50,50])
# PRESENTING CODE