Jonathan Fontes

Pitly: Fake Payment Gateway

25 de February de 2018

A parte mais díficil de testar third-party response como Stripe é complicado, mas achei uma forma fácil de poder testar.

payment A resposta é criar um objecto / class que é um fake ou nullable object do real object, neste caso, FakePaymentGateway. A sua implementação é muito simples,

<?php
namespace App\Billing;
class FakePaymentGateway implements PaymentGateway
{
    protected $charges;
    public function __construct()
    {
        $this->charges = collect();
    }
    public function charge($amount, $token)
    {
        $this->charges->push($amount);
    }
    public function getValidTestToken()
    {
        return 'valid-token';
    }
    public function totalCharges()
    {
        return $this->charges->sum();
    }
}

Como no acceptance test resolvo a depêndencia no container, o controller irá sempre usar o nosso Fake Payment Gateway.

Nesta versão do GIT ainda não testamos o que acontece se o token for inválido e também não testamos subscription de planos, apenas um "charge" directo ao API. E ainda não implementamos Proxy Class para o Stripe que implementa o nosso PaymentGateway.

I don't know why all developer say, "Proudly Hosted by DigitalOcean".

© 2017 · 2018