Open source is fine for this project. You may use unlimited amounts of open-source code without restriction. I need a utility Java program to enable me to capture runtime method calls in a running application and automatically generate mock classes such as jmock / mockobjects / mockcreator / etc. Those libraries such as jmock/mockobjects/mockcreator are very nice but they require the programmer to tediously hand-code all the mock call sequences. Since I already have a working application, I just need a utility to capture the run-time method call sequences via bytecode instrumentation and generate the mocks automatically. As you may have surmised by now, I have a complex application already working but it has NO testcases, so I need a tool to automatically create the mocks in order for me to be able to create JUnit tests from scratch. Obviously you will need to use BCEL or ASM3 or something similar for this. That is fine as I said, unlimited Open Source is allowed.
## Deliverables
The main deliverable is a command-line Java "launcher" application which will launch my "real" application. The "launcher" should accept the name of the "real" application's main class and also the list of classes or package hierarchies to be trace-logged and used for mock class generation. After the application is launched, the user will run through some use-cases for recording. The launcher will record all the interactions (method calls) that flow through the traced classes during the testing/recording session. At the end of testing, the user will exit the application. The launcher will then use the logged information to generate mock classes capable of reproducing the same results as the real classes that were traced. At the end of this process, the programmer will be able to replace the traced classes with mocked classes and as long as the same call sequences are maintained, any tests that use the mocked classes will work the same as if they were with the real classes.
* * *1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows? (depending on the nature? of the deliverables):
a)? For web sites or? other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software? installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Java