Stubs/fakes(casting as a particular object)
Clara Situma

Clara Situma @csituma

About: i love technology I love simplifying complex topics.,and solving problems

Location:
Nairobi
Joined:
Sep 25, 2020

Stubs/fakes(casting as a particular object)

Publish Date: Jan 17 '23
4 0

Stubs are a key tool for software testing, allowing developers to test individual units of code in isolation by replacing external dependencies with simplified versions.

Here's an example of a stub in use:

import { IncomingMessage } from "http";
import { Utils } from "../../app/Utils/Utils";

describe('Utils test Suite', () => { 
    test('getRequestPath valid request', () => { 
        const request = {
            url: 'http://localhost:8080/login'
        } as IncomingMessage
        const requestPath = Utils.getRequestBasePath(request);
        expect(requestPath).toBe('login')
    })
})
Enter fullscreen mode Exit fullscreen mode

In this example, the Utils.getRequestBasePath(req: IncomingMessage): string function is being tested using a stub, specifically the const request = { url: 'http://localhost:8080/login' }as IncomingMessage object.

This object simulates an incoming HTTP request, and is used in place of an actual incoming request that would come from a client. The function is supposed to extract the base path of the request URL and return it. In the test case, the request URL is hardcoded to be "http://localhost:8080/login", and the expected output is "login". The test case uses the Jest testing framework to test the expected output of the function.

Stubs are not only useful in unit testing but also in integration testing and acceptance testing. They are used to replace external systems with simple implementations, allowing the developer to test how different parts of the system interact with each other, and make tests more efficient, reliable, and flexible.

Comments 0 total

    Add comment