Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7540033
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 30, 20262026-05-30T07:32:18+00:00 2026-05-30T07:32:18+00:00

I want to test a JSF Backing-Bean method isInProgress that delegates to a service

  • 0

I want to test a JSF Backing-Bean method “isInProgress” that delegates to a service method “isInProgress”. When the service method throws an exception, the bean should put an event on a specific event logger and return false.

When I debug the following test, I get into the catch-block. The mocked service does not throw the exception, but returns a “default answer” which is false for th boolean. What am I doing wrong?

I also wonder if the try-catch around the “when” call can be avoided somehow, as the actual exception is swallowed by the bean under test. In fact I think “declaratively” passing the name of the method to the “when” should suffice. Is there a way to get that cleaner ?

@Test
public void testIsInProgressExeption() {
    //prepare object and inputs
    MyBean bean = new MyBean();
    MyService service = mock(MyAdapterService.class);
    bean.setService(service);

    try {
        when(bean.getService().isInProgress()).thenThrow(new Exception());
    } catch (Exception e) {

        //prepare expected object and result
        MyBean expectedBean = new MyBean();
        expectedBean.setService(service);
        boolean expected = false;

        //execute method under test
        boolean actual = bean.isInProgress();

        //check return values and exceptions
        assertEquals(expected, actual);

        //check that bean did not change unexpectedly
        assertTrue(bean.equals(expectedBean));

        //check sideeffects on event log
        assertTrue(logEvents.containsMessage("MDI09"));
    }

}

For reference here is the updated Test:

@Test
public void testIsInProgressExeption() throws Exception {
    //prepare object and inputs
    MyBean bean = new MyBean();
    MyService service = mock(MyAdapterService.class);
    bean.setService(service);

    when(bean.getService().isInProgress()).thenThrow(new Exception());

    //prepare expected object and result
    MyBean expectedBean = new MyBean();
    expectedBean.setService(service);
    boolean expected = false;

    //execute method under test
    boolean actual = bean.isInProgress();

    //check return values and exceptions
    assertEquals(expected, actual);

    //check that bean did not change unexpectedly
    assertTrue(bean.equals(expectedBean));

    //check sideeffects on event log
    assertTrue(logEvents.containsMessage("MDI09"));

}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-30T07:32:20+00:00Added an answer on May 30, 2026 at 7:32 am

    Move the when clause out of the try block and change it to:

    when(service.isInProgress()).thenThrow(new Exception());
    

    Now it should throw an exception when called.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to test my AccountController . The problem is that in Register method
i want to test a home grown service that listens to a specific port
I want to test a piece of code that uses network (the NSURLConnection class,
I want to write integration tests for my application. I want to test, that
I want to test a method defined in a rake task. rake file #lib/tasks/simple_task.rake
I want to test a method which doesn't return anything. The method starts by
I want to test some methods that call others in the same class. They
I want to test my Location based application that uses CLLocationManager to find my
I want to test some features that needs delayed jobs to work, on cucumber.
I want to test my Dao Class using the SpringContextTests. In my method class

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.