First Mimic Test Case"
From Documentation
(Created page with "{{ZATSEssentialsPageHeader}} = Simple Application Under Test = We are going to introduce some basic concepts of ZATS Mimic with a simple application. This application only has ...") |
m (correct highlight (via JWB)) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
= Simple Application Under Test = | = Simple Application Under Test = | ||
− | We are going to introduce some basic concepts of ZATS Mimic | + | We are going to introduce some basic concepts of ZATS Mimic using a simple application. This application only has one label and a button with no other content at first. It has only one function: when a user clicks the button, the label shows "Hello Mimic" as shown in the image below. |
[[File:Smalltalk-mimic-hello.png]] | [[File:Smalltalk-mimic-hello.png]] | ||
Line 47: | Line 47: | ||
# Tear down, stop server emulator | # 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. | Before diving into the source code of a test case, let me introduce some basic classes used in a test case. | ||
− | ; < | + | ; <javadoc directory="zats">org.zkoss.zats.mimic.Zats</javadoc> |
− | : It contains several utility methods to initialize and clean testing environment. By default, it starts server emulator '''with | + | : 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. |
− | ; < | + | ; <javadoc directory="zats"> org.zkoss.zats.mimic.Client</javadoc> |
− | : Acts like a | + | : Acts like a browser to the server emulator and we use it to connect to a ZUL. One client keeps its session even connecting to different ZUL pages. If you want to create different sessions, you have to create another client object. |
− | ; < | + | ; <javadoc directory="zats">org.zkoss.zats.mimic.DesktopAgent </javadoc> |
− | : Wraps ZK Desktop object, we usually call its < | + | : Wraps ZK Desktop object, we usually call its <code> query() </code> or <code> queryAll() </code> to retrieve <code> ComponentAgent </code> with selector syntax. |
− | + | : 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]] | |
− | ; < | + | ; <javadoc directory="zats">org.zkoss.zats.mimic.ComponentAgent </javadoc> |
: 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. | ||
− | : It also has < | + | : It also has <code> query() </code> which means to find targets among its child components. |
− | ; < | + | ; <javadoc directory="zats">org.zkoss.zats.mimic.operation.OperationAgent</javadoc> <code>(ClickAgent, TypeAgent, SelectAgent...)</code> |
: 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. | ||
+ | |||
+ | |||
+ | {{ZATSEssentialsPageHeader}} | ||
+ | {{ZATSEssentialsHeadingToc}} | ||
{{ZATSEssentialsPageFooter}} | {{ZATSEssentialsPageFooter}} |
Latest revision as of 13:46, 19 January 2022
Simple Application Under Test
We are going to introduce some basic concepts of ZATS Mimic using a simple application. This application only has one label and a button with no other content at first. It has only one function: when a user clicks the button, the label shows "Hello Mimic" as shown in the image below.
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:
- Setup web application content path
- Create a client to connect to a ZUL
- Query a component
- Perform an operation on a component
- Verify result by checking a component’s property
- 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 browser to the server emulator and we use it to connect to a ZUL. One client keeps its session even connecting to different ZUL pages. If you want to create different sessions, you have to create another client object.
- DesktopAgent
- Wraps ZK Desktop object, we usually call its
query()
orqueryAll()
to retrieveComponentAgent
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.