|
|
|
|
|
by elshimone
5204 days ago
|
|
If you wanted to unit test this I'm confident you could do it using JMockit [1] without changing the code. JMockit allows you to mock just about anything (static methods, final methods, constructor invocations). The unit test might look something like: @Test
public void checkIndexRenders()
{
final List expectedforums= new ArrayList(asList(TEST_FORUM));
new NonStrictExpections()
{
@Mocked Forum forum;
@Mocked Topic topic;
@Mocked Post post;
{
Forum.findAll(); result = expectedforums;
Topic.count(); result = 5;
Post.count(); result = 10;
}
};
Forums.index()
// your assertions ...
}
I come from a DI background, but the JMockit framework has changed my view of what untestable code is.[1] http://code.google.com/p/jmockit/ |
|
No criticism of your code example. I think figuring out how to make Java do this is very impressive. I just wonder if it's considered wise to do this sort of thing in production code?
(Edited to correct that I don't think that's a static initializer block.)