Using stubs

Component Testing for C

Use the STUB statement to declare that you want to use a stub rather than the original function. You can use the STUB instruction within environments or test scenarios.

This STUB instruction tests input parameters and assigns a value to output parameters each time the simulated function is called.

The following information is required for every stub called in a scenario:

Example

The following example illustrates use of a stub which simulates file access.

SERVICE copy_file

 #char file1[100], file2[100];

 #int s;

 TEST 1

 FAMILY nominal

 ELEMENT

 VAR file1, init = "file1", ev = init

 VAR file2, init = "file2", ev = init

 VAR s, init == , ev = 1

 STUB open_file ("file1")3

 STUB create_file ("file2")4

 STUB read_file (3,"line 1")1, (3,"line 2")1, (3,"")0

 STUB write_file (4,"line 1")1, (4,"line 2")1

 STUB close_file (3)1, (4)1

 #s = copy_file(file1, file2);

 END ELEMENT

 END TEST

END SERVICE

 

The following example specifies that you expect three calls of foo.

STUB STUB1.foo(1)1, (2)2, (3)3

...

#foo(1);

#foo(2);

#foo(4);

 

The first call has a parameter of 1 and returns 1. The second has a a parameter of 2 and returns 2 and the third has a parameter of 3 and returns 3. Anything that does not match is reported in the test report as a failure.