Top Answers to Junit Interview Questions
1. What is JUnit?
JUnit is a unit testing framework for the Java Programming Language. It is written in Java and is an Open Source Software maintained by the JUnit.org community.
Learn all about JUnit through this online Junit training course.
2. What are important features of JUnit?
Import features of JUnit are:
- It is an open source framework.
- Provides Annotation to identify the test methods.
- Provides Assertions for testing expected results.
- Provides Test runners for running tests.
- JUnit tests can be run automatically and they check their own results and provide immediate feedback.
- JUnit tests can be organized into test suites containing test cases and even other test suites.
- JUnit shows test progress in a bar that is green if test is going fine and it turns red when a test fails.
Go through the JUnit Video to get clear understanding of JUnit.
3. What is a Unit Test Case?
A Unit Test Case is a part of code which ensures that the another part of code (method) works as expected. A formal written unit test case is characterized by a known input and by an expected output, which is worked out before the test is executed. The known input should test a precondition and the expected output should test a post condition.
4. Why does JUnit only report the first failure in a single test?
Reporting multiple failures in a single test is generally a sign that the test does too much and it is too big a unit test. JUnit is designed to work best with a number of small tests. It executes each test within a separate instance of the test class. It reports failure on each test.
5. In Java, assert is a keyword. Won’t this conflict with JUnit’sassert() method?
JUnit 3.7 deprecated assert() and replaced it with assertTrue(), which works exactly the same way. JUnit 4 is compatible with the assert keyword. If you run with the -ea JVM switch, assertions that fail will be reported by JUnit.
6. How do I test things that must be run in a J2EE container (e.g. servlets, EJBs)?
Refactoring J2EE components to delegate functionality to other objects that don’t have to be run in a J2EE container will improve the design and testability of the software. Cactus is an open source JUnit extension that can be used for unit testing server-side java code.
7. What are JUnit classes? List some of them?
JUnit classes are important classes which are used in writing and testing JUnits. Some of the important classes are:
- Assert – A set of assert methods.
- Test Case – It defines the fixture to run multiple tests.
- Test Result – It collects the results of executing a test case.
- Test Suite – It is a Composite of Tests.
8. What are annotations and how are they useful in JUnit?
Annotations are like meta-tags that you can add to you code and apply them to methods or in class. The annotation in JUnit gives us information about test methods , which methods are going to run before & after test methods, which methods run before & after all the methods, which methods or class will be ignore during execution.
9. What Is JunitTestCase?
JUnit Test Case is the base class, junit. framework.TestCase, that allows you to create a test case. (Although, TestCase class is no longer supported in JUnit 4.4.)
A test case defines the fixture to run multiple tests. To define a test case
- Implement a subclass of TestCase
- Define instance variables that store the state of the fixture
- Initialize the fixture state by overriding setUp
- Clean-up after a test by overriding tearDown
Each test runs in its own fixture so there can be no side effects among test runs.
10. What is Junit Test Fixture?
A test fixture is a fixed state of a set of objects used as a baseline for running tests. Their purpose is to ensure that there is a well known and fixed environment in which tests are run so that results are repeatable.
Examples of fixtures:
- Loading a database with a specific, known set of data
- Copying a specific known set of files
- Preparation of input data and setup/creation of fake or mock objects
If a group of tests shares the same fixtures, you should write a separate setup code to create the common test fixture. If a group of tests requires different test fixtures, you can write code inside the test method to create its own test fixture.