Как проверить обертку сторонней библиотеки - PullRequest
0 голосов
/ 01 ноября 2018
class GPublisher():

    def __init__(self, topic_name):
        self.publisher = PublisherClient()
        self.project_id = settings.project_id
        self.topic_path = self.publisher.topic_path(
            self.project_id, topic_name)

    def publish(self, data):
        message_future = self.publisher.publish(self.topic_path, data=data)
        message_future.add_done_callback(self.callback)

    def callback(self, message_future):
        if message_future.exception(timeout=30):
            print('Publishing message on {} threw an Exception {}.'.format(
                self.topic_name, message_future.exception()))
        else:
            print(message_future.result())

Как я могу сделать модульный тест для этого класса? И как убедиться, что класс всегда работает правильно, поскольку он не настоящий?

1 Ответ

0 голосов
/ 01 ноября 2018

Если вы вводите зависимости, вы можете легко заменить сторонний модуль на макет для юнит-тестов

class GPublisher():

def __init__(self, topic_name, publisher_client):
    self.publisher = publisher_client
    self.project_id = settings.project_id
    self.topic_path = self.publisher.topic_path(
        self.project_id, topic_name)

и в модульном тесте

GPublisher("topic_name", mock_publish_client)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...