Exforsys.com
 

Sponsored Links

 

Swing Testing Tutorials

 
Home Tutorials Swing Testing
 

Swing Extreme Testing - The name() Test

 

The name() Test

Like the wasCancelled()method, the name() method is not thread-safe, so our test class needs another boilerplate helper method:



Sample Code
  1. //From SaveAsDialogTest
  2.  
  3. private IkonName enteredName() {
  4. final IkonName[] resultHolder = new IkonName[1]
  5. UI.runInEventThread( new Runnable() {
  6.  
  7.  
  8.  public void run() {
  9. resultHolder[0] = sad.name()
  10.  
  11.  
  12.  }
  13. } )
  14. return resultHolder[0]
  15.  
  16.  
  17. }
Copyright exforsys.com


Using this, we can write our nameTest():


Sample Code
  1. public boolean nameTest() {
  2. init()
  3. //Note 1
  4.  assert enteredName() == null
  5. //Note 2
  6.  ui.robot.type( "remus" )
  7. assert enteredName().equals( new IkonName( "remus" ) )
  8. //Note 3
  9.  ui.ok()
  10. assert enteredName().equals( new IkonName( "remus" ) )
  11. cleanup()
  12. return true
  13. }
Copyright exforsys.com


The main points of this test are as follows.


Note 1: Here we simply check that with no value entered into the text fi eld, the method returns null. This could have gone into the constructor test.


Note 2: UISaveAsDialog has an enterName() method that types in the name and then presses Enter. In this test we want to type in a name, but not yet activate Ok by pressing Enter. So we use the Cyborg in the UISaveDialog to just type the name, and then we check the value of name(). This part of the test helps to define the method SaveAsDialog.name() by establishing that a value is returned even when the Ok button has not been activated.


Note 3: Here we are just testing that activating the Ok button has no effect on the value of name(). Later, we will also test whether the Ok button disposes the dialog.


It would be tempting to write some reflective method that made methods like name(), wasCancelled(), and enteredName() one-liners. However, that would make these examples much harder to understand. A bigger problem, though, is that we would lose compile-time checking: reflection breaks at runtime when we rename methods.


The show() Test

Our tests have used the show() method because it is used in init(). So we can be sure that show() actually does bring up the SaveAsDialog user interface. What we will check in showTest()is that the show() method blocks the calling thread.


Sample Code
  1. public boolean showTest() {
  2.  init()
  3.  assert !shower.isAwakened()
  4.  ui.cancel()
  5.  assert shower.isAwakened()
  6.  cleanup()
  7.  init()
  8.  assert !shower.isAwakened()
  9.  ui.saveAs( "ikon" )
  10.  assert shower.isAwakened()
  11.  cleanup()
  12.  return true
  13. }
Copyright exforsys.com


In the first sub-test, we check that cancellation of the SaveAsDialog wakes the launching thread. In the second sub-test, we check that activation of the Ok button wakes the launching thread.



Read Next: Swing Extreme Testing - The Data Validation Test



 

 

Comments



Post Your Comment:

Members Please Login
Your Name:*
e-mail ID:(required for notification)*
Image Verification: 
 
 Subscribe    

Sponsored Links

 

Subscribe via RSS


Get Daily Updates via Subscribe to Exforsys Free Training via email


Get Latest Free Training Updates delivered directly to your Inbox...

Enter your email address:


 

Subscribe to Exforsys Free Training via RSS
 

 
Partners -  Privacy and Legal Policy -  Site News -  Contact   Sitemap  

Copyright © 2000 - 2009 exforsys.com. All Rights Reserved

Page copy protected against web site content infringement by Copyscape