如何模拟外部API

时间:2019-07-03 05:22:36

标签: php laravel-5 phpunit

我必须为在Laravel 5.6中构建的API端点编写测试用例。 API端点调用外部API,并根据响应和数据库中的值做出决定。

下面是我的端点所调用的Model方法的大致外观

public function getFields( $user ) {

    $apiResponse = ExternalAPI::getResponse ( $user->id );

    if( $user->perms == 1 ) {
        if( $apiResponse->fields == 'contact' ) {
            return true;
        } else {
            return false;
        }
    } elseif( $user->perms == 2) {
        if( $apiResponse->fields == 'leads' ) {
            return true;
        } else {
            return false;
        }   
    }

    return false;

}

因此,我必须模拟来自API的响应,并在每个测试用例之前在数据库中设置适当的值。

请您提出建议,我将如何编写不同的测试用例对此进行测试。我知道我必须使用模拟和工厂类,但是我不确定如何将它们放在一起。

0 个答案:

没有答案