Binary Min Heap data structure implementation
You have duplicated code in your constructors, the default constructor should call the other one with capacity.
Maybe make the capacity = 100 constant and name it something like DEFAULT_INITIAL_CAPACITY.
Your tests are not named. After reading a name of a test (or anything you name in general) you should have some sort of understanding, what the test tests.
You test too many things at once. One test should test one aspect of your code. You call offer n times and assert the peek value, after that you poll and offer and assert the poll value. Better would be to split it and test the poll and offer mechanism seperately. So actually the first part could fail, while the second one would be okay, or the other way round. So you are never really sure, what really failed. You also don't have to call offer n times, it shouldn't make any difference, does it? If it would, it should be a separate test anyway.
test2() isn't meaningful, either, I mean, what's the difference between the first test, except larger numbers? I'm sure you want to test the resize of the inner array, but how does one know? I'd do something like this:

@Test
public void exceedingHeapsizeCapacityIncreaseHeapCapacity() {
    int heapCapacity = 1;
    BinaryHeap2 heap = new BinaryHeap2(1);

    heap.offer(1);
    heap.offer(1);

    // no assertion, if resize wouldn't work, 2nd call would throw Exception... maybe a method to provide the actual capacity wouldn't be _that_ bad
}

To call 'display' in a test doesn't make sense either, if you have thousands of test in an application, you just fill the console with crap and makes actual troubleshooting much harder, better to have debug or trace debugging within the class under test and activate it, when you have to troubleshoot your test or something in production.
The type has a "display" method. Usually you have an own 'View' Type. You just pass your Heap and tell the View "display your contents" (think as if you want to change the 'presentation layer', like, if you want to display it in a browser as html, the type must not write html itself)
Try to avoid naming variables like i and j. If you read the method swap by itself, you do not know, what i and j means, a method shall be as self explanatory as possible. To really understand it, you have to check, who actually calls this method.
The intention of heapifyDown is not very clear. I've read it three times and still don't understand it - goal should be, that you can read it once and understand it, shouldn't it? I think that's possible in that case. The break in the while loop hurts, can't you do that within the while condition, too?
The ordering of of public/private methods is always a discussion. It usually is public to private. But I also like to order it as how the code is called. Like you have public void offer, and you call heapifyUp, which is just under it, which I actually really like. But: The getSize() can moved beneath heapifyDown.