# Class: MockClient Extends: `undici.Client` A mock client class that implements the same api as [MockPool](MockPool.md). ## `new MockClient(origin, [options])` Arguments: * **origin** `string` - It should only include the **protocol, hostname, and port**. * **options** `MockClientOptions` - It extends the `Client` options. Returns: `MockClient` ### Parameter: `MockClientOptions` Extends: `ClientOptions` * **agent** `Agent` - the agent to associate this MockClient with. ### Example - Basic MockClient instantiation We can use MockAgent to instantiate a MockClient ready to be used to intercept specified requests. It will not do anything until registered as the agent to use and any mock request are registered. ```js import { MockAgent } from 'undici' // Connections must be set to 1 to return a MockClient instance const mockAgent = new MockAgent({ connections: 1 }) const mockClient = mockAgent.get('http://localhost:3000') ``` ## Instance Methods ### `MockClient.intercept(options)` Implements: [`MockPool.intercept(options)`](MockPool.md#mockpoolinterceptoptions) ### `MockClient.close()` Implements: [`MockPool.close()`](MockPool.md#mockpoolclose) ### `MockClient.dispatch(options, handlers)` Implements [`Dispatcher.dispatch(options, handlers)`](Dispatcher.md#dispatcherdispatchoptions-handler). ### `MockClient.request(options[, callback])` See [`Dispatcher.request(options [, callback])`](Dispatcher.md#dispatcherrequestoptions-callback). #### Example - MockClient request ```js import { MockAgent } from 'undici' const mockAgent = new MockAgent({ connections: 1 }) const mockClient = mockAgent.get('http://localhost:3000') mockClient.intercept({ path: '/foo', method: 'GET', }).reply(200, 'foo') const { statusCode, body } = await mockClient.request({ origin: 'http://localhost:3000', path: '/foo', method: 'GET' }) console.log('response received', statusCode) // response received 200 for await (const data of body) { console.log('data', data.toString('utf8')) // data foo } ```