Junit - test for exception problem
I'm trying to test if an exception is being thrown (when one is expected)
I get this error (when I shouldn't):
java.lang.AssertionError: Expected exception: exception.OutOfRangeException
The method being tested:
public void setScore ( int score ) throws exception.OutOfRangeException
if ( ( score < 0 ) || ( score > 100 ) ) {
throw new exception.OutOfRangeException( "Score invalid: " + score );
else {
this.score = score
}The test method:
@Test(expected=exception.OutOfRangeException.class)
public void testScoreOutOfRangeException() {
try {
record.setScore (-1);
catch ( OutOfRangeException e ) {
// do nothing because we expected it
}What I am doing wrong?
Yes, it does compile.
You are catching the exception.
junit expects to see the exception itself. You arecatching it so it doesn't see it.
I understand what you are saying. I originally didn't
type in the try/catch in the test method. But if I
remove the try/catch I get this error:
Unhandled exception type OutOfRangeExceptionI don't know much about Junit 4, but my preferred way of testing exceptions is to surround them in a try/catch as you have but to call Assert.fail() at the end of the try block
public void testScoreOutOfRangeException() {
try {
record.setScore (-1);
fail("should have thrown an OutOfRangeException)";
catch ( OutOfRangeException e ) {
// do nothing because we expected it
}You'll have to look at Teh Docs for JUnit4 to see how to force a fail, though
Similar Messages
-
Re: junit test for entity beans ... ejb 3.0
I'm confused. I'm trying to test my entity bean.
I have:
- an entity bean
- a stateless session bean for accessing the entity bean (facade)
- an interface for accessing the the stateless bean
And I'm trying to write a JUnit test class to test this bean. However, I am uncertain as to how to test this (I'm new to EJB 3.0, JBoss and Eclipse).
What would the JUnit test look like? I'm confused as to whether or not I should be injecting the interface/bean/what???
I've tried several variations. I either get "NameNotFound" - not bound exceptions or Null pointer exceptions.
What would the @EJB syntax look like or how would I do it through the context?
For Example:
@EJB private TestFacade myTest; //interface to stateless bean ?
OR
InitialContext ctx = new InitialContext();
TestResultFacadeBean myTest = (TestResultFacadeBean) ctx.lookup("localTest");
I'm confused at to which method I should be using and what object I should be accessing. If I could get either one to work, I'd be happy. :)
How do I ensure my bean is deployed to the container? What do I need to do?
If anyone has a simple example or explanation as to which method I should use and how to use it, I'd be very grateful.
Thanks very much,
LisaDOK, you need to have several layers of testing.
Layer 0. Test the entity beans are deployable (more on this later). Basically, you need to know that all your annotations work. Things to watch out for are multiple @Id fields in one class or @EmbeddedID or @IdClass in conjuction with @ManyToOne, @ManyToMany, @OneToMany, @OneToOne and fun with @JoinTable, @JoinColumn and @JoinColumns. Once you know how these are supposed to work with the spec, it's not too bad to write it correctly each time. But there are some gotchas that will break things later on.
Layer 1. Do the functions in the classes that don't depend on annotations work as expected. Typically, this is just going to be the getters and setters in your entity classes. Of course JUnit best practice says we don't bother testing functions that look like:
public T getX() {
return this.x;
or
public void setX(T x) {
this.x = x;
as there is nothing that can go wrong with them. So in that case, your level 1 tests will just be initial values specified from constructors and verifying that the non-get/set pairs work, and that the getters you have tagged @Transient work (because you've likely put some logic in them)
Layer 2. Test the session bean methods that don't require injection to work.
Layer 3. Test the session bean methods that require injection (Mock Objects). Simulate the injection for yourself, injecting Mock Objects for the entity manager. Then you can confirm that the correct methods are being called in the correct sequences, etc.
[Note this may require some skill in designing the mock. I'm working on developing my own entitymanager mock, and if it looks usefull I'll release it to the world.
Layer 4. Test the session bean methods that require injection (Real entity manager) (See Layer 0)
For this you will need an out of container persistence implementation. Currently Hibernate and Glassfish provide beta versions. You will need a different persistence.xml file that lists all the entities. You will have to use reflection to inject the entity manager(s) that you create from an entity manager factory unless you provide a constructor that takes an EntityManager as a parameter. You may need to use reflection to call any @PostConstruct method if you made it private.
Layer 5. Navigate the relationships in the objects returned from Layer 4 using a database that has been loaded with test data.
I am currently using Layers 0, 1, 2 & 4 to test my session beans and entity beans. -
Question about writing Junit test for SQLj application
Just inherite a SQLj application without unit test. After making few enchancement I plan to add unit test about it to make it more solid. What I plan to do is invoke SQLj translator dynamically to generate java source, then compile and invoke the result class dynamically at Junit test. Does anyone how to call SQLj translator as an API call ??
I guess I might add that the error I am getting is
java.lang.nullPointerException
i've got this now:
public E top() throws EmptyStackException {
if (numItems == 0)
throw new EmptyStackException("Stack is empty");
return S[numItems--];
}With the same test, as it would throw an emptystackexception not a full..
But the test still doesn't pass. -
How to restore previous OS; want to run some test for charging problem
Our Ipod touch 3rd gen will no longer charge form a wall charger. It will charge from a computer though. Wall charger and cable Ok; check it with an Ipod touch 4gen brand new. Believe it could be IOS 5. Can we restore previous IOS to run some test?
Downgrading the iOS is not supported by Apple. Sorry.
-
Best practice for @EJB injection in junit test (out-of-container) ?
Hi all,
I'd like to run a JUnit test for a Stateless bean A which has another bean B injected via the @EJB annotation. Both beans are pure EJB 3 POJOs.
The JUnit test should run out-of-container and is not meant to be an EJB client, either.
What is the easiest/suggested way of getting this injection happening without explicitely having to instantiate the bean B in my test setup ?you can deal with EntityBeans without having the Container managed senario , you can obtain instance of EntityManager using the "EntityManagerFactory" and providing the "persistence.xml" file and provide the "provider" (toplink,hibernate ,...), then you can use entities as plain un managed classes
-
Check if an exception is thrown during my JUnit test
Hi all,
I've been writing unit tests for the application I'm writing.
I'm trying to write one very generic test which will simply open up the application, press some buttons, and close it back down, and confirm that no exceptions were thrown at any time during the test.
Unfortunately, while I figured I could just wrap the whole thing in a try/catch block, it seems that I have an exception that is being thown in the AWT-EventQueue which isn't being caught. The test passes fine, but I want it to fail.
What is the best way to go about checking for this? Should I be running the test in the event queue? Or should I have my own error handler to catch the exceptions?
Thanks!
Timjschell wrote:
TimQuinn wrote:
I'm not trying to fix the bug. I'm trying to make my JUnit tests catch the exception. I think we're going around in circles here.Yep. Because the problem was stated incorrectly.
Exceptions are returned up the call stack within the thread of execution.
You have two threads. The one that the test runs in A, and another B.
You can't catch or even see an exception in A that originated in B as an exception (you can't catch it.)
So you need to find some other way, some other place, to put a catch, in thread B and then create data which indicates whether it worked or not. Or find some other existing data that changes state because of that.Well, the question that I asked in my original post was exactly that: how do I find out about an exception that is thrown in another thread? If something got stated incorrectly, maybe it was in the later posts?
It can't be impossible: I can think of one very simple solution to my question, but it isn't very good. I can simply replace the Standard Error writer with one that sets a"fail" flag every time it is called. Then my test can fail every time Standard Error is written to, no matter which thread it's in. Obviously, this isn't a great solution, because, while it would fail the test every time an exception was printed, it would fail other times as well.
So with a bit more work I could parse what's written to stderr myself, to check if it's a real exception. But this really seems like re-inventing the wheel. Is there no standard pattern for creating a test that confirms that you can run something without generating exceptions? -
JUnit - Strange Test Case running problem
Hi Everyone,
I am very new to J Unit testing. Here's my problem. I have a project set up in Net Beans. Inside the project, there is a folder named "tests". This folder contains the following class:
public class Bob
public static void main(String[] args)
System.out.println("Hello");
}There are other classes inside of this folder that extend TestCase and TestSuite. They are functionally working according to J Unit testing (they prompt a JUnit Test Results panel in Net Beans with Pass or Fail).
The problem that I am having upon running/executing the class "Bob", NetBeans treats it as a JUnit test case and brings up a Pass/Fail panel. I do not want this to happen. I just want this class to print "Hello" as if it was not a Test. Do you guys have any idea what the problem is? My "Bob" class has nothing imported.
Also, I have another question. Is there a way that I can take INPUT from a user when running a Test Case (such as using the Scanner class)? My test cases seem to skip over the Scanner.nextLine() code for some reason.
Thanks in advance.Hi BigDaddy,
Thanks for the suggestion, however I am unsure of what you mean by injecting the scanner. Here is an example of what I would like to do:
public class BenchmarkTestSuite extends TestSuite
public static void main(String[] args)
try
Scanner scan = new Scanner(System.in);
System.out.print("Enter the number of iterations for read: ");
readIterations = scan.nextInt();
.... etc
catch(Exception ex)
ex.printStackTrace();
.... etc
}Here, the prompted question for the user gets ignored for some odd reason. I would like for the tests to not start until the question has been answered by the user. NetBeans is strange. I commented all of the test methods to see if the question gets printed to the console, and it does not.
Thanks. -
Getting error while writing JUnit test case for RestFul Services
Hi All,
I have written Restful services in Netbean 6.8.
It's running well...no issues.
{color:#0000ff}While writing JUnit test cases for them, I am getting following error:
{color}{color:#993300}Testcase: testGetAuthenticated(com.ct.services.LoginServicesTest): Caused an ERROR
Implementing class{color}
java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:160)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:65)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
at com.ct.services.LoginServices.getAuthenticated(LoginServices.java:205)
at com.ct.services.LoginServicesTest.testGetAuthenticated(LoginServicesTest.java:84)
Test com.ct.services.LoginServicesTest FAILED
F:\NetbeanProjectsWorkspace\DemoProject\nbproject\build-impl.xml:972: Some tests failed; see details above.
BUILD FAILED (total time: 11 seconds)
{color:#0000ff}Strange thing is that when I am commenting below lines and its related calls:
{color}
{color:#ff0000}EntityManagerFactory mEmf = Persistence.createEntityManagerFactory("AnyName");
EntityManager mEm = mEmf.createEntityManager();
{color}
{color:#0000ff}from my code, JUnit test cases are working fine.
{color}Anybody having any idea about this ?
Thanks
Avi
Edited by: Avi007 on Aug 28, 2010 5:17 AMHi All,
[http://stackoverflow.com/questions/2778295/test-driven-development-problem]
Please refer the above link for the solution
Thanks
Avi
Edited by: Avi007 on Aug 30, 2010 12:33 AM -
Exception while running a test file as JUNIT test case
Hi,
I am trying to build a code using Eclipse to generate an "ear" file that can be used for deployment. The ear file is generated successfully but the build is not successful as the following exception is thrown while debugging a junit test case:
javax.naming.CommunicationException: tdk.dk:389 [Root exception is java.net.SocketTimeoutException: connect timed out]
at com.sun.jndi.ldap.Connection.<init>(Connection.java:197)
at com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:118)
at com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1580)
at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2616)
at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:287)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136)
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Kindly suggest a solution.
P.S. : All test cases are running fine except for one test case, whose error details are given.No it is not. The Oracle JDeveloper and ADF forum is for development questions around development with Oracle JDeveloper and ADF.
If you use Eclipse through OEPE, you could post the question here
Enterprise Pack for Eclipse
If you don't use OEPE but Eclipse, then this forum may be a great source of help: http://stackoverflow.com/
Frank -
Setting bind variables for VO in JUnit test case
Hi,
I am using Jdeveloper 11.1.2.2
I have a problem while writing the test case for VO in JUnit.
For the Remove method in the Test case , I have passed variables into the VO by using a setWhereClause() .
Like this :
view.setWhereClause(null);
String whereClause = "location_id = '" + newUpdatedLocationId + "' AND organization_id = '" +newOrganizationId + "'" ;
view.setWhereClause(whereClause);
view.executeQuery();
while (view.hasNext()) {
view.next();
view.removeCurrentRow();
fixture1.getApplicationModule().getTransaction().commit();But it is showing a an error like the bind variables are not set.
So how will I access Bind variables programmatically and set the values ?
Thanks
Nigel.setNamedWhereClauseParam() is used for setting bind variables
-
Problems Debugging JUnit Tests
Hi,
I have been trying a TDD approach to my new development and until my latest test everythings been working well. Im using Eclipse by the way with JUnit incoporated into my project
Now I have the following problem..
I ran my latest test and my CPU usage shot up to 100%. In an attempt to work out why I selected Debug as JUnit Project, the following was displayed
Class File Editor
The Source attachment does not contain the source for the file Assert.class
You can change the source attachment by clicking change attached source below.
Unfortunately I don't know what this means, can anyone help me out here?
ThanksI don't have access to any other IDE's apart from Eclipse, so I can't check if they run outside.You don't need an IDE to run outside Eclipse. Just run JUnit from a command shell, just like any other Java program that you'd run if you didn't have ANY IDE.
Whats Ant? I presume i'm not using it.Ant is an XML and Java-based make tool that's a standard for Java these days:
http://ant.apache.org
It can run all your JUnit tests as part of your build process. It'll even work with Eclipse.
Its my last test thats causing it not to work however
it never even returns a failure it hangs the system
before the failure is reported. If I remove this test
and debug the other tests however the same error
described in the first post occurs.Can you step through that JUnit test in the Eclipse debugger to see where it's hanging up? If you're going to use an IDE, might as well put it to work. -
My MacAir is great except for a problem i have. Keys F1, F2,F5,F6,F7,F8,F9,F10,F11,F12 and the power button are unresponsive. These are keys i frequently use and i have searched the whole apple help centre. Anyone got answers for me? Please helP!!!
Some keys don't work as expected
From the Apple menu, choose System Preferences.
From the View menu, choose Speech.
Click the Text to Speech tab.
If "Speak selected text when the key is pressed" is enabled, the key or key combination set to speak text cannot be used for other purposes or used to type text--click Set Key and change it to a less-commonly used key combination (try to use modifier keys such as Shift, Command, Option, and Control). Or, disable the "Speak selected text when the key is pressed" option.
Click the Universal Access pane in System Preferences, click the Keyboard tab.
Make sure that Slow Keys is turned off. With Slow Keys on, you need to press a key for a longer period of time for it to be recognized.
In the Universal Access pane, click the Mouse tab, and make sure Mouse Keys is turned off. With Mouse Keys enabled, you cannot use the Numeric Keypad to enter numbers--instead the keypad moves the pointer (cursor). (There is an option to enable Mouse Keys with five presses of the Option key; you may want to turn that option off to avoid accidentally enabling it.) If Mouse Keys is enabled and you are using a keyboard with no numeric keypad or Num Lock function, see Unable to type while Mouse Keys is enabled in Mac OS X.
If the function keys on the top row of the keyboard are not working as expected, see Mac OS X: How to change the behavior of function keys.
If the issue persists, use Keyboard Viewer to help isolate the issue:
Click the Language & Text pane (Mac OS X v10.6) or International pane (Mac OS X v10.5.8 or earlier) in System Preferences.
Click the Input Sources tab (or Input Menu tab in Mac OS X 10.5.8 or earlier).
Click the Keyboard & Character Viewer "On" checkbox to select it (click the Keyboard Viewer "On" checkbox in Mac OS X 10.5.8 or earlier).
From the Input (flag) menu, choose Show Keyboard Viewer.
If the keyboard is connected and detected by Mac OS X, the keys you type will highlight in the Keyboard Viewer window. Open TextEdit (or any text application), and try to type something using the keys that were previously not responding to see if they highlight in Keyboard Viewer.
Start from the Mac OS X Install Disc, choose Terminal from the Utilities menu and test the keys which were previously not working. If the keys work while started from the Install disc, then the keyboard itself is working correctly. Use Mac OS X: How to troubleshoot a software issue to isolate the software issue that may be causing the keys to not respond.
http://support.apple.com/kb/TS1381 -
Exceptions trying to run Junit test thro Jdev. Test uses Application module
Hi,
my junit test works through the OraTst frame work. But I want to debug the code and If I try to run the same test through Jdev I am running into a following exception. Can somebody tell me how to fix this issue.
I am a consumer of the Application module, I have not created it. I am using it by referencing it through the jar file provided by the owner.
oracle.jbo.DMLException: JBO-27200: JNDI failure. Unable to lookup Data Source at context jdbc/EMReposDS
at oracle.jbo.server.DBTransactionImpl.lookupDataSource(DBTransactionImpl.java:1414)
at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:309)
at oracle.jbo.common.ampool.DefaultConnectionStrategy.connect(DefaultConnectionStrategy.java:203)
at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolConnect(ApplicationPoolMessageHandler.java:553)
at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:409)
at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:8534)
at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4392)
at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2388)
at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareResource(ApplicationPoolImpl.java:3621)
at oracle.jbo.pool.ResourcePool.useResource(ResourcePool.java:344)
at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2200)
at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3088)
at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:460)
at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:431)
at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:426)
at oracle.jbo.client.Configuration.getApplicationModule(Configuration.java:1494)
at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1399)
at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1370)
-SiddSidd,
No idea what OraTst is, but based upon the name of your data source, I'd guess you are an Oracle employee using an internal framework. I understand that there are some internal Oracle forums that you can use.
John -
Persist does not throw any exception in a JUnit test
I am implementing a JUnit test using Toplink as JPA provider. I must be missing something because I try to persist two times the same entity and no exception is thrown. Neither PersistenceException nor any other type of exception. The code cannot be easier:
@Test
public void testAddExistingTeam() throws Exception {
Team team = new Team("team2");
try{
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("fofo");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(team);
em.persist(team);
em.getTransaction().commit();
em.close();
catch(Exception e){
e.printStackTrace();
Notice the two em.persist(team).
This code does not seem to either enter the catch block or produce any sort of exception. On the other hand, I have checked that after the first
em.persist(team); the team is really managed.
The relevant parts of the Team class definition follow:
@Entity
@Table (name ="TEAM")
public class Team implements Serializable {
@Id
@Column (name="NAME")
private String name;
@ManyToOne
@JoinColumn (name="CLUB_NAME", referencedColumnName="NAME")
private Club club;
private Category category;
private String email;
@ManyToMany(mappedBy="teams")
private List<Competition> competitions;
public Team (String name){
this.name = name;
this.club = null;
this.competitions = new ArrayList<Competition>();
....getters/setters....and more constructors.
I am really puzzled by this issue. Somebody could help??? I would be really grateful!!!
JosepmaThis is expected behavior as persist is a no-op if called on a managed entity (other than to cascade over relationships marked with cascade.Persist), and the first persist call makes the passed in team entity managed.
Try calling em.flush(); and em.clear(); between the persist calls to get an exception.
The first flush will ensure the team is inserted in the database, while clear will detach it so that the second persist call will try to insert the team. JPA providers are not required to throw the entityExistsException on persist - it can be delayed until the transaction is flushed or committed, so you are likely to get a PersistenceException from the commit instead of EntityExistsException from persist.
Best Regards,
Chris -
Using TimesTen for JUnit tests
I want to switch from using HSQL (in memory) to TimesTen in my Unit tests. Is there a simple setup for TimesTen when used for this purpose?
For example, for HSQL, all I have to do is include the hsql.jar as a dependency in my project, then include the following line in my JUnit test:
DataSource dataSource = new DriverManagerDataSource("org.hsqldb.jdbcDriver",
"jdbc:hsqldb:target/test-classes/com/project/path/test/schema", user, pw);
schema is a reference to the schema.script that includes the DDL for all the tables that I need to create in memory.
Can anyone help me out? Thanks.From what little I know about it TimesTen is not an in-memory database, it is a caching architecture. Therefore I would expect the set-up to be different - the TimesTen stuff should be set up once ever[], like the schema of a regular database, rather than everytime you run your unit tests.
I think you need to sit down with the TimesTen documentation and figure out how you are going to use the product. If you are just looking for a quick DB to use in unit tests I think you may well want to keep using HSQL.
Cheers, APC
Maybe you are looking for
-
I have 3 dynamic select menus in form but when submit when error - selection is lost
Hi does anybody know how to make these select menus stay other than using javascript? I have looked on the internet for a looooong time for this and have no further knowledge. I can however get it to stay selected in an update record but not in an in
-
Sudden white screen on my macbook pro resulting in distorted image
After a sudden white screen, I tried to boot my macbook into recovery mode and the screen started to have some purple straps all over the place. Also, I noticed random distorted startup screen (the grey background and apple logo) and then would end u
-
Condition record and import pricing procedure
hi sap gurus i want to know abt condition record and import pricing procedure in detail can u pls help me
-
Does anyone know if the speakers Apple sells are good for home studio monitors. They go for about $100 up. Thanks
-
My motion menu's look like trash! Help!
I made some motion menus (in Motion) and am using them in a DVDSP project. Anywho, the DVD motion menu images look pretty pixilated, and some of main intro motion flickers a bit when it's moving. Got any ideas why this is happening? Also, if it's hel