Testing Java Applications using Groovy blocks/en: Unterschied zwischen den Versionen

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
This example demonstrates how to use [[Java Browser/en]], [[Java Debugger/en]] and [[SmallSense/en]] plugins for Java application test development. It shows
how to use Groovy blocks to

== The Bank Account Example ==

Through this tutorial, we'll use a simple "Bank Account" as system under test.
"Bank Account" is a very simple Java library that models banks and accounts
and allow transation among accounts.

The code of the "Bank Account" application is not correct at place bu purpose.
You may download a full Eclipse project containing the example code at
[http://www.example.com somewhere].

== Setting up expecco ==

For the sake of brevity, in this tutorial we'll use simple local JVM managed by
expecco to run "Bank Account"s code.
As for any Java application, we have to set up a classpath properly so the JVM
can find application code.

Let's define an expecco environment variable named '''CLASSPATH_BANKACCOUNT''' defining where the "Bank Account" code is actually located:

[[Datei:expecco_BankAccounts_001.png]]


Then let's define a "SetUp" block that actually adds the directory to JVM class path. A simple JavaScript block would do it:

<code>
execute
JAVA::Java singletonInstance
addToClassPath: (self environmentAt: 'CLASSPATH_BANKACCOUNT')
</code>

This block has to be run before any other Java code using "Bank Account" classes is run. Putting it as test plan's pre-execution block [[!ref!]] might be
a good way to ensure it.

== Designing a test ==

Once the class path is set up, we start designing an implementing tests. Let's start with a simple tests that create a two bank accounts and then make transfer
from one account to another. Then tests would check if the final balance on accounts is what one would expect.

The very simple test would be then:

* create account ''A1'' with initial balance 1000.
* create account ''A2'' with initial balance 1000.
* transfer 500 from account ''A2'' to account ''A1''.
* check that final balance of ''A1'' is 1500
* check that final balance of ''A2'' is 500.

In expecco, the testcase may look like:

[[Datei:expecco_BankAccounts_002.png]]

The block ''Create 2 accounts & make a transaction'' would actually call the Java API of a "Bank Account" application. By separating the actual action code
from assertions (check) we can easily create more tests just with different values. This will become handy later.

== Calling the Java API ==

In order to implement the test as outlined above, we have to implement a block that actually call the Java API.

[[Java Browser/en]] plugin for expecco provides a simple browser to load and browse Java code directly from expecco environment.
To open a Java Browser on "Bank Account" code, select ''Extras'' ► ''Plugins'' ► ''Java Browser'' ► ''Open...'' from expecco menu
and define a new Java browser workspace.

A Java browser workspace is a folder where Java Browser stores all the Java code and sources. You can define as many workspaces as you like and
switch between them. If you don't have a workspace for "Bank Account" yet, just enter an empty directory and new workspace will be created.
Initially the workspace is empty, so to actually see the code of "Bank Account", we have add it's code and sources to the workspace. To do so,
just click to ''Open Settings'' button in Java Browser window or select ''Workspace'' ► ''Settings'' from window menu. In Settings dialog,
click to ''Add Library'' button and add ''Bank Account'' code. One added and confirmed (by pressing ''OK'' button), you may browse through the
code, check what classes and methods are available and so on.

[[Datei:expecco_BankAccounts_005.png]]








== To remove ==

<pre>
<pre>
java -agentlib:jdwp=transportt_socket,server=y,suspend=n,address=3003 \
java -agentlib:jdwp=transportt_socket,server=y,suspend=n,address=3003 \

Version vom 30. September 2014, 15:18 Uhr

This example demonstrates how to use Java Browser/en, Java Debugger/en and SmallSense/en plugins for Java application test development. It shows how to use Groovy blocks to

The Bank Account Example[Bearbeiten]

Through this tutorial, we'll use a simple "Bank Account" as system under test. "Bank Account" is a very simple Java library that models banks and accounts and allow transation among accounts.

The code of the "Bank Account" application is not correct at place bu purpose. You may download a full Eclipse project containing the example code at somewhere.

Setting up expecco[Bearbeiten]

For the sake of brevity, in this tutorial we'll use simple local JVM managed by expecco to run "Bank Account"s code. As for any Java application, we have to set up a classpath properly so the JVM can find application code.

Let's define an expecco environment variable named CLASSPATH_BANKACCOUNT defining where the "Bank Account" code is actually located:

Expecco BankAccounts 001.png


Then let's define a "SetUp" block that actually adds the directory to JVM class path. A simple JavaScript block would do it:

execute

   JAVA::Java singletonInstance
       addToClassPath: (self environmentAt: 'CLASSPATH_BANKACCOUNT')    

This block has to be run before any other Java code using "Bank Account" classes is run. Putting it as test plan's pre-execution block !ref! might be a good way to ensure it.

Designing a test[Bearbeiten]

Once the class path is set up, we start designing an implementing tests. Let's start with a simple tests that create a two bank accounts and then make transfer from one account to another. Then tests would check if the final balance on accounts is what one would expect.

The very simple test would be then:

  • create account A1 with initial balance 1000.
  • create account A2 with initial balance 1000.
  • transfer 500 from account A2 to account A1.
  • check that final balance of A1 is 1500
  • check that final balance of A2 is 500.

In expecco, the testcase may look like:

Expecco BankAccounts 002.png

The block Create 2 accounts & make a transaction would actually call the Java API of a "Bank Account" application. By separating the actual action code from assertions (check) we can easily create more tests just with different values. This will become handy later.

Calling the Java API[Bearbeiten]

In order to implement the test as outlined above, we have to implement a block that actually call the Java API.

Java Browser/en plugin for expecco provides a simple browser to load and browse Java code directly from expecco environment. To open a Java Browser on "Bank Account" code, select ExtrasPluginsJava BrowserOpen... from expecco menu and define a new Java browser workspace.

A Java browser workspace is a folder where Java Browser stores all the Java code and sources. You can define as many workspaces as you like and switch between them. If you don't have a workspace for "Bank Account" yet, just enter an empty directory and new workspace will be created. Initially the workspace is empty, so to actually see the code of "Bank Account", we have add it's code and sources to the workspace. To do so, just click to Open Settings button in Java Browser window or select WorkspaceSettings from window menu. In Settings dialog, click to Add Library button and add Bank Account code. One added and confirmed (by pressing OK button), you may browse through the code, check what classes and methods are available and so on.

Expecco BankAccounts 005.png





To remove[Bearbeiten]

java -agentlib:jdwp=transportt_socket,server=y,suspend=n,address=3003 \
     -cp bin \
     -jar "/home/jv/Private/Projects/SmalltalkX/sources/branches/jv1/build/exept/technologyBridge/javaBridge/javaBridge_Server_Client/agents/JavaBridge.jar"\
     -port 5005 -asServer -localOnly \
     -extDir "/home/jv/Private/Projects/SmalltalkX/sources/branches/jv1/build/exept/technologyBridge/javaBridge/javaBridge_Server_Client/ext"



Copyright © 2014-2024 eXept Software AG