First Mimic Test Case"

From Documentation
Line 52: Line 52:
  
 
; <tt> Zats</tt>
 
; <tt> Zats</tt>
:    It contains several utility methods to initialize and clean testing environment. By default, it starts server emulator '''with predefined web.xml and zk.xml ''' bundled in ZATS Mimic's jar.
+
:    It contains several utility methods to initialize and clean testing environment. By default, it starts server emulator '''with built-in web.xml and zk.xml ''' bundled in ZATS Mimic's jar.
 
; <tt> Client</tt>
 
; <tt> Client</tt>
 
:    Acts like a client to the server emulator and we use it to connect to a ZUL.
 
:    Acts like a client to the server emulator and we use it to connect to a ZUL.
 
; <tt> DesktopAgent </tt>
 
; <tt> DesktopAgent </tt>
:    Wraps ZK Desktop object, we usually call its <tt> query() </tt> or <tt> queryAll() </tt> to retrieve ZK components with selector syntax supported in <javadoc> org.zkoss.zk.ui.select.SelectorComposer </javadoc>
+
:    Wraps ZK Desktop object, we usually call its <tt> query() </tt> or <tt> queryAll() </tt> to retrieve <tt> ComponentAgent </tt> with selector syntax.
:    For available selector syntax, please refer to javadoc or [[Small Talks/2011/January/Envisage ZK 6: An Annotation Based Composer For MVC]]
+
:    For available selector syntax, please refer to <javadoc> org.zkoss.zk.ui.select.SelectorComposer </javadoc> or [[Small Talks/2011/January/Envisage ZK 6: An Annotation Based Composer For MVC]]
 
; <tt> ComponentAgent </tt>
 
; <tt> ComponentAgent </tt>
 
:    Mimics a ZK component and determines which operation you can perform on it. We can also get ZK component property's value from it.
 
:    Mimics a ZK component and determines which operation you can perform on it. We can also get ZK component property's value from it.
Line 64: Line 64:
 
:    To mimic a user operation to a ZK component.
 
:    To mimic a user operation to a ZK component.
 
:    We name it "Agent" as it's not really the user operation itself, it's an agent to mimic user operation to a component.
 
:    We name it "Agent" as it's not really the user operation itself, it's an agent to mimic user operation to a component.
 +
 +
 +
  
  
 
{{ZATSEssentialsPageFooter}}
 
{{ZATSEssentialsPageFooter}}

Revision as of 07:41, 15 May 2012

First Mimic Test Case



Simple Application Under Test

We are going to introduce some basic concepts of ZATS Mimic with a simple application. This application only has one label with no content at first and one button. It only has one function: when a user clicks the button, the label shows "Hello Mimic" as the image below.

Smalltalk-mimic-hello.png


ZUL of our simple application

<zk>
	<window title="hello" border="normal" width="300px" apply="org.zkoss.zats.example.hello.HelloComposer">
		<label />
		<button label="Hello" />
	</window>
</zk>

Composer of our simple application

public class HelloComposer extends SelectorComposer {
	
	@Wire("label")
	Label label;
	
	@Listen("onClick = button")
	public void hello(){
		label.setValue("Hello Mimic");
	}
}

Write a Test Case

Steps to write a test case are as follows:

  1. Setup web application content path
  2. Create a client to connect to a ZUL
  3. Query a component
  4. Perform an operation on a component
  5. Verify result by checking a component’s property
  6. Tear down, stop server emulator

Fundamental Classes

Before diving into the source code of a test case, let me introduce some basic classes used in a test case.

Zats
It contains several utility methods to initialize and clean testing environment. By default, it starts server emulator with built-in web.xml and zk.xml bundled in ZATS Mimic's jar.
Client
Acts like a client to the server emulator and we use it to connect to a ZUL.
DesktopAgent
Wraps ZK Desktop object, we usually call its query() or queryAll() to retrieve ComponentAgent with selector syntax.
For available selector syntax, please refer to SelectorComposer or Small Talks/2011/January/Envisage ZK 6: An Annotation Based Composer For MVC
ComponentAgent
Mimics a ZK component and determines which operation you can perform on it. We can also get ZK component property's value from it.
It also has query() which means to find targets among its child components.
OperationAgent (ClickAgent, TypeAgent, SelectAgent...)
To mimic a user operation to a ZK component.
We name it "Agent" as it's not really the user operation itself, it's an agent to mimic user operation to a component.





Last Update : 2012/05/15

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.