Description
So you started using dependency injection because somebody told you it would make your tests simpler? But as you gaze at your deep hierarchy of test classes, "simple" is not exactly the word you think of. Plus, creating a new mock whenever you add a parameter to an injected constructor gets old very quickly.
You are not alone! And Jukito was created specifically for people like you. Read on, or get started right away!
If you use Google Guice, or if your GWT application uses Gin, then Jukito is the perfect antidote to your unit testing headaches. Now you can write tests like this:
Jukito alternatives and similar libraries
Based on the "Testing" category.
Alternatively, view Jukito alternatives based on common mentions on social networks and blogs.
-
Apache JMeter
Apache JMeter open-source load testing tool for analyzing and measuring the performance of a variety of services -
TestContainers
Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. -
MockServer
MockServer enables easy mocking of any system you integrate with via HTTP or HTTPS with clients written in Java, JavaScript and Ruby. MockServer also includes a proxy that introspects all proxied traffic including encrypted SSL traffic and supports Port Forwarding, Web Proxying (i.e. HTTP proxy), HTTPS Tunneling Proxying (using HTTP CONNECT) and SOCKS Proxying (i.e. dynamic port forwarding). -
PowerMock
PowerMock is a Java framework that allows you to unit test code normally regarded as untestable. -
Pact JVM
JVM version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project. -
Scott Test Reporter
Never debug a test again: Detailed failure reports and hassle free assertions for Java tests - Power Asserts for Java -
pojo-tester
Java testing framework for testing pojo methods. It tests equals, hashCode, toString, getters, setters, constructors and whatever you report in issues ;)
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Jukito or a related project?
Popular Comparisons
README
The combined power of JUnit, Guice and Mockito. Plus it sounds like a cool martial art.
So you started using dependency injection because somebody told you it would make your tests simpler? But as you gaze at your deep hierarchy of test classes, "simple" is not exactly the word you think of. Plus, creating a new mock whenever you add a parameter to an injected constructor gets old very quickly.
You are not alone! And Jukito was created specifically for people like you. Read on, or get started right away!
If you use Google Guice, or if your GWT application uses Gin, then Jukito is the perfect antidote to your unit testing headaches. Now you can write tests like this:
@RunWith(JukitoRunner.class)
public class EmailSystemTest {
@Inject EmailSystemImpl emailSystem;
Email dummyEmail;
@Before
public void setupMocks(
IncomingEmails incomingEmails,
EmailFactory factory) {
dummyEmail = factory.createDummy();
when(incomingEmails.count()).thenReturn(1);
when(incomingEmails.get(0)).thenReturn(dummyEmail);
}
@Test
public void shouldFetchEmailWhenStarting(
EmailView emailView) {
// WHEN
emailSystem.start();
// THEN
verify(emailView).addEmail(dummyEmail);
}
}
That's right, Jukito lets you @Inject
fields exactly as if your test class was injected with Guice. You can also inject parameters into your @Test
, @Before
and @After
methods. Guice's just-in-time binding automatically instantiate your concrete classes, like EmailFactory
. What about interfaces like IncomingEmails
or EmailView
? Jukito mocks them out automatically for you using mockito!
Let's look at another example:
@RunWith(JukitoRunner.class)
public class CalculatorTest {
public static class Module extends JukitoModule {
protected void configureTest() {
bindMany(Calculator.class,
ScientificCalculator.class,
BusinessCalculator.class);
bindManyInstances(AdditionExample.class,
new AdditionExample(1, 1, 2),
new AdditionExample(10, 10, 20),
new AdditionExample(18, 24, 42));
}
}
@Test
public void testAdd(@All Calculator calculator, @All AdditionExample example) {
// WHEN
int result = calculator.add(example.a, example.b);
// THEN
assertEquals(example.expected, result);
}
}
As you see here, Jukito lets you define your very own test module, where you can bind classes just like a regular Guice module. It doesn't stop there, however. The bindMany
methods let you bind different classes or instances to the same interface. Combined with the powerful @All
annotation this lets you easily run a single test on a whole suite of test examples. The code above will run a total of six tests!
Getting Started
Read the wiki to find out everything Jukito has to offer, and join the discussion!
Latest Release
- 1.5
Links
- Jukito Custom Google Search - Search GWTP documentation, wiki and thread collections.
- Jukito WebSite Source - Jukito website source.
- Jukito Google Group - Find help here.
- Jukito Previous Repo - Previous home of Jukito.
- GWTP - Find out more about GWT-Platform.