Skip to main content
In this article, we demonstrate how to test your product API endpoints—including create, update, and delete—using various HTTP methods. The sections below detail the implementation of the API routes and the corresponding test functions, ensuring a comprehensive and self-contained guide.

API Route Handlers

Our API route handlers are implemented using various HTTP verbs. The snippet below shows how the routes are configured:
The above code snippet sets up routes for handling product retrieval, creation, updating, and deletion using an HTTP router.

Testing the API Endpoints

Before delving into individual test cases, note that each test function begins by clearing the database table and adding a sample product. This approach ensures that tests are isolated and reproducible.

1. Testing Product Deletion

The following test function outlines the deletion process. Initially, a product is added and verified via a GET request. The product is then deleted using a DELETE request, and a final GET request confirms the deletion.

2. Testing Product Update

This section details the procedure for testing the update functionality. The test retrieves the original product details, performs a PUT request to update the product, and finally compares the old and new values to confirm that only the desired changes were made.
After updating the product, the test compares the original values with the updated ones. For instance, if the new quantity remains unchanged (i.e., still 10 instead of the expected 1), an error is triggered:
Ensure that the test checks only the intended fields for updates to prevent unexpected behavior in unrelated parts of your product data.

3. Testing Product Creation

This test case demonstrates the product creation process. A POST request helps to create a new product, and the response is unmarshaled to verify that the product properties match the expected values.

Helper Function: sendRequest

A common helper function is used to send HTTP requests to the application’s router. This function is essential for abstracting the request process in the tests.

Running the Tests

After implementing your tests, run them using the command below:
You should see output similar to the following:
Any failures during testing—for example, if the updated quantity does not change as intended—will produce an error message such as:
Error messages like the one above indicate potential issues in your update logic and should be addressed promptly to ensure your API functions as expected.

Extending the Test Suite

To ensure the robustness of your API, consider adding the following test cases: Expanding your test suite with these scenarios will help ensure your API reliably handles various edge cases.
By following this guide and implementing comprehensive tests, you can confidently develop and maintain your product inventory application, ensuring that it behaves as expected across all CRUD operations.

Watch Video

Practice Lab