Actions (with no outputs) that are not split actions are called atomic actions.
Actions are not exactly the same as method calls, and (e.g., with split actions) there
is not always a one-to-one relation between method calls and actions. Therefore, we
must distinguish between method names and action symbols, the names of actions.
The default behavior of the library and tools is to automatically derive the action
symbols from method names, but you can also assign your own action symbols in
the action attributes (Appendix A). The entire collection of action symbols used by
a model program is called its action vocabulary or just its vocabulary.
8.3 Test harness
A test harness is code that enables a test runner to execute an implementation. You
must write a test harness for each implementation. Figures 8.4 and 8.5 show the
test harness that connects the client/server implentation to the ct tool. The implementation
appears in Chapter 2, Figures 2.3??“2.5.
You can write the harness to accommodate differences between the model and
the implementation. The harness in Figures 8.4 and 8.5 drives an implementation
where sockets are objects, but in the model they are static variables. Although the
library and tools use .NET, you can write a harness for an implementation that does
not use .NET.
Write the test harness in the same namespace as the implementation.
Pages:
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210