Skip to content

Instantly share code, notes, and snippets.

public class CompraTestMocks {
PasarelaDePago pasarelaDePagoMock = createMock(PasarelaDePago.class);
Producto unProductoStub = createMock(Producto.class);
Compra compra = new Compra(pasarelaDePagoMock);
@Test public void
si_el_cliente_tiene_fondos_para_realizar_la_compra_tengo_que_cobrarle_a_traves_de_la_pasarela_de_pago() {
expect(unProductoStub.precio()).andReturn(50);
expect(pasarelaDePagoMock.tieneElUsuarioFondosPorValorDe(50)).andReturn(true);
@AlfredoCasado
AlfredoCasado / gist:776679
Created January 12, 2011 19:12
Ejemplo dobles, clase compra
public class Compra {
private final List<Producto> productos = new ArrayList();
private final PasarelaDePago pasarelaDePago;
public Compra(PasarelaDePago pasarelaDePagoStub) {
this.pasarelaDePago = pasarelaDePagoStub;
}
public void anadir(Producto producto) {
@AlfredoCasado
AlfredoCasado / gist:776199
Created January 12, 2011 14:14
Ejemplo stub a mano
@Test public void
al_confirmar_la_compra_me_devuelve_el_importe_cobrado_usuario_sin_usar_mockito() {
Producto productoStubCreadoManualmente = new Producto() {
@Override
public int precio() {
return PRECIO_DEL_UNICO_PRODUCTO_COMPRADO;
}
};
compra.anadir(productoStubCreadoManualmente);
@AlfredoCasado
AlfredoCasado / gist:776187
Created January 12, 2011 14:01
Ejemplo stub
public class CompraTest {
Producto unProductoStub = mock(Producto.class);
Producto otroProductoStub = mock(Producto.class);
PasarelaDePago pasarelaDePagoStub = mock(PasarelaDePago.class);
Compra compra = new Compra(pasarelaDePagoStub);
@Test public void
si_el_cliente_tiene_fondos_para_realizar_la_compra_la_puedo_confirmar() {
when(unProductoStub.precio()).thenReturn(50);
@AlfredoCasado
AlfredoCasado / gist:773229
Created January 10, 2011 18:47
Iteracion 3 modelo
public interface Descuento {
int aplicar(int precioAntesDeAplciarDescuento);
}
public class DescuentoConPorcentaje implements Descuento {
private int porcentajeDeDescuento;
public int aplicar(int precioAntesDeAplicarDescuento) {
return (porcentajeDeDescuento/100)*precioAntesDeAplicarDescuento;
}
@AlfredoCasado
AlfredoCasado / gist:773172
Created January 10, 2011 18:14
iteracion 3 anémico
public class Descuento {
private int porcentajeDeDescuento;
private int cantidadFijaDeDescuento;
private String tipoDeDescuento;
public int getPorcentajeDeDescuento() {
return porcentajeDeDescuento;
}
@AlfredoCasado
AlfredoCasado / gist:772333
Created January 10, 2011 03:55
Iteracion 2 modelo
public class Descuento {
private int porcentajeDeDescuento;
public int aplicar(int precioAntesDeAplicarDescuento) {
return (porcentajeDeDescuento/100)*precioAntesDeAplicarDescuento;
}
}
@AlfredoCasado
AlfredoCasado / gist:772310
Created January 10, 2011 03:35
Iteracion 2 modelo anémico
public class Descuento {
private int porcentajeDeDescuento;
public int getPorcentajeDeDescuento() {
return porcentajeDeDescuento;
}
public void setPorcentajeDeDescuento(int porcentajeDeDescuento) {
this.porcentajeDeDescuento = porcentajeDeDescuento;
@AlfredoCasado
AlfredoCasado / gist:772297
Created January 10, 2011 03:10
Iteracion 1 con modelo
public class Producto {
private int precio;
public int precio() {
return precio;
}
}
@AlfredoCasado
AlfredoCasado / gist:772280
Created January 10, 2011 02:56
Iteración 1 con modelo anémico
public class Producto {
private int precio;
public int getPrecio() {
return precio;
}
public void setPrecio(int precio) {
this.precio = precio;