# US 12,001,323 B2 · Test recorder for API unit testing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,323 B2
- Document ID: US12001323B2
- Status: Granted
- Kind: B2
- Application number: 17/587,009
- Filed: 2022-01-28
- Published: 2022-09-22
- Granted: 2024-06-04
- Earliest claimed: 2021-03-22
- Assignees: salesforce.com, inc.
- Applicants: salesforce.com, inc.
- Inventors: Sanjna Verma; Matias Pentreath; Leandro Emmanuel Reina Kiperman; Julian Pascual; Fernando Thea; Facundo Ezequiel Poblete; Diego Martin Strubolini; Pablo Damian La Greca
- Web page: https://patentgrep.com/patent/US12001323B2

## CPC

- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed herein are system, method, and computer program product embodiments for generating a unit test for an API or integration of an application by recording a flow of an input through a plurality of message processors of the application. A developer can then view an outline of the recorded flow in a menu, from which the developer can select an individual processor within the recorded flow. By selecting an individual processor, options particular to that processor can be presented to the developer to allow them to control behaviors of the unit test or to validate results.

## Claims

### Claim 1

A method, comprising:
executing, by one or more computing devices, an application under test;
calling, by the one or more computing devices, the application under test with a desired input;
recording, by the one or more computing devices, a flow of the desired input through a plurality of processors of the application under test, wherein one or more processors of the plurality of processors are individually selectable in an outline for the flow;
configuring, by the one or more computing devices, an action for a processor of the plurality of processors associated with the flow; and
generating, by the one or more computing devices, a unit test for the application under test based on the flow and the configured action.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
presenting, by the one or more computing devices, the flow as the outline of the plurality of processors of the application under test.

### Claim 3 (depends on 2)

The method of claim 2, wherein each processor of the plurality of processors is selectable in the outline, further comprising:
presenting, by the one or more computing devices, a configuration option corresponding to the processor of the plurality of processors based on the processor of the plurality of processors being selected in the outline, wherein the configuration option specifies the configured action.

### Claim 4 (depends on 1)

The method of claim 1, wherein the action comprises an assertion on a message payload.

### Claim 5 (depends on 1)

The method of claim 1, wherein the action comprises a verification that the processor of the plurality of processors was called a specified number of times.

### Claim 6 (depends on 1)

The method of claim 1, wherein the action comprises spying a payload of the processor of the plurality of processors.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
recording, by the one or more computing devices, an additional flow of an additional desired input through an additional plurality of processors of the application under test; and
presenting, by the one or more computing devices, the flow and the additional flow together as outlines of the plurality of processors and the additional plurality of processors of the application under test.

### Claim 8

A system, comprising:
a memory configured to store operations; and
one or more processors configured to perform the operations, the operations comprising:
executing an application under test,
calling the application under test with a desired input,
recording a flow of the desired input through a plurality of processors of the application under test, wherein one or more processors of the plurality of processors are individually selectable in an outline for the flow,
configuring an action for a processor of the plurality of processors associated with the flow, and
generating a unit test for the application under test based on the flow and the configured action.

### Claim 9 (depends on 8)

The system of claim 8, further comprising:
presenting the flow as the outline of the plurality of processors of the application under test.

### Claim 10 (depends on 9)

The system of claim 9, wherein each processor of the plurality of processors is selectable in the outline, further comprising:
presenting a configuration option corresponding to the processor of the plurality of processors based on the processor of the plurality of processors being selected in the outline, wherein the configuration option specifies the configured action.

### Claim 11 (depends on 8)

The system of claim 8, wherein the action comprises an assertion on a message payload.

### Claim 12 (depends on 8)

The system of claim 8, wherein the action comprises a verification that the processor of the plurality of processors was called a specified number of times.

### Claim 13 (depends on 8)

The system of claim 8, wherein the action comprises spying a payload of the processor of the plurality of processors.

### Claim 14 (depends on 8)

The system of claim 8, further comprising:
recording an additional flow of an additional desired input through an additional plurality of processors of the application under test; and
presenting the flow and the additional flow together as outlines of the plurality of processors and the additional plurality of processors of the application under test.

### Claim 15

A non-transitory, computer-readable storage medium having instructions stored thereon, execution of which, by one or more processing devices, causes the one or more processing devices to perform operations comprising:
executing an application under test;
calling the application under test with a desired input;
recording a flow of the desired input through a plurality of processors of the application under test, wherein one or more processors of the plurality of processors are individually selectable in an outline for the flow;
configuring an action for a processor of the plurality of processors associated with the flow; and
generating a unit test for the application under test based on the flow and the configured action.

### Claim 16 (depends on 15)

The non-transitory, computer-readable storage medium of claim 15, the operations further comprising:
presenting the flow as the outline of the plurality of processors of the application under test.

### Claim 17 (depends on 16)

The non-transitory, computer-readable storage medium of claim 16, wherein each processor of the plurality of processors is selectable in the outline, the operations further comprising:
presenting a configuration option corresponding to the processor of the plurality of processors based on the processor of the plurality of processors being selected in the outline, wherein the configuration option specifies the configured action.

### Claim 18 (depends on 15)

The non-transitory, computer-readable storage medium of claim 15, wherein the action comprises an assertion on a message payload.

### Claim 19 (depends on 15)

The non-transitory, computer-readable storage medium of claim 15, wherein the action comprises a verification that the processor of the plurality of processors was called a specified number of times.

### Claim 20 (depends on 15)

The non-transitory, computer-readable storage medium of claim 15, wherein the action comprises spying a payload of the processor of the plurality of processors.
