2015-09-24 7 views
0

Я использую aws sdk для ruby ​​для извлечения объекта из ведра, а затем прочитал его. Мой код что-то вроде:Как протестировать метод AWS S3 get object?

def import_from_s3 

    #initiate the client 
    s3 = Aws::S3::Client.new({ 
     region:   region, 
     access_key_id:  key_id, 
     secret_access_key: secret 
    }) 

    #Get the object 
    resp = s3.get_object(bucket: bucket, key: key) 
end 

Мой вопрос: как я могу проверить этот метод, не издеваясь над ним?

ответ

1

Вам не нужно (и вы даже не должны пытаться) проверить #get_object. Это не реализовано вашим кодом, и вы должны предположить, что оно было протестировано, и оно работает. Что касается метода #import_from_s3, у вас есть два варианта. Вы либо не тестируете его, поскольку это всего лишь тонкая обертка вокруг #get_object; или вы можете сделать утверждения/ожидания относительно возвращаемого значения.

1

Вот документация о том, как это сделать.

Stubbing the aws client response

Я использовал окурок по умолчанию, и он работал нормально.

Aws.config[:s3] = {stub_responses: {get_object: {body: StringIO.new("XYZ")}}}

Смежные вопросы