Integration testing Nameko microservices
Earlier we looked at testing a service in isolation by spawning a single worker. This is great for unit testing but it is not a viable option for integration testing.
Nameko gives us the ability to test multiple services working in tandem in a single test. Look at the following:
def test_root_http(web_session, web_config, container_factory):
web_config['AMQP_URI'] = 'pyamqp://guest:guest@localhost'
web_server = container_factory(WebServer, web_config)
konnichiwa = container_factory(KonnichiwaService, web_config)
web_server.start()
konnichiwa.start()
result = web_session.get('/')
assert result.text == 'Konnichiwa!' As you can see in the preceding code, Nameko also gives us access to the following test fixtures:
web_session: Gives us a session in which to make HTTP requests to the serviceweb_config: Allows us to access the configuration for the service (outside of testing, this is equivalent to theconfig.yamlfile...