| ////////////////////// |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| ////////////////////// |
| |
| [[core-testsupport,TestSupport]] |
| = Core Test Support = |
| |
| [devstatus] |
| -------------- |
| source=core/testsupport/dev-status.xml |
| -------------- |
| |
| Zest™ comes with classes to help with testing. For general development, only a couple of classes are of interest as the |
| others are mostly for EntityStore and Index/Query SPI implementations. There is also some mocking support, to allow |
| some of Zest's unique aspects to be mocked, but since Zest™ is so flexible at a fine-granular level, we have found that |
| mocking is seldom, if ever, needed. |
| |
| include::../../build/docs/buildinfo/artifact.txt[] |
| |
| == Your First Testcase == |
| In most cases, you will probably use the AbstractZestTest class to simplify starting a Zest™ test instance. |
| |
| [snippet,java] |
| -------------- |
| source=tutorials/hello/src/test/java/org/apache/zest/tutorials/hello/HelloTest.java |
| tag=step1 |
| -------------- |
| |
| This will do all the initialization of a Zest™ runtime instance and create a single layer with a single module in it. |
| What goes into that module is declared in the assembly() method; |
| |
| [snippet,java] |
| -------------- |
| source=tutorials/hello/src/test/java/org/apache/zest/tutorials/hello/HelloTest.java |
| tag=step2 |
| -------------- |
| |
| In this case we declare that we have a ValueComposite of type org.apache.zest.tutorials.hello.Hello which looks like |
| |
| [snippet,java] |
| -------------- |
| source=tutorials/hello/src/main/java/org/apache/zest/tutorials/hello/Hello.java |
| tag=body |
| -------------- |
| |
| The say() method will get the _phrase_ and _name_ from its internal state (the State interface is not magical, it could |
| be named anything). |
| |
| And then we create the actual test; |
| |
| [snippet,java] |
| -------------- |
| source=tutorials/hello/src/test/java/org/apache/zest/tutorials/hello/HelloTest.java |
| tag=step3 |
| -------------- |
| |
| By using the prototypeFor() we can access the hidden, internal and very private state of the ValueComposite. Once the |
| value is created we can reach this directly. |
| |