java.lang.IllegalStateException: отсутствует определение поведения для предыдущего вызова метода getMessage («title»)

Я использую EasyMock (версия 2.4) и TestNG для написания UnitTest.

У меня есть следующий сценарий, и я не могу изменить способ определения иерархии классов.

Я тестирую ClassB, который расширяет ClassA.

ClassB выглядит так

public class ClassB extends ClassA  {

  public ClassB()
    {
        super("title");
    }

    @Override
    public String getDisplayName() 
    {
        return ClientMessages.getMessages("ClassB.title");
    }

}

Код Класса

public abstract class ClassA {
    private String title;

    public ClassA(String title)
    {
        this.title = ClientMessages.getMessages(title);
    }

    public String getDisplayName()
    {
        return this.title;
    }
}

Код класса ClientMessages

public class ClientMessages {
    private static MessageResourse messageResourse;

    public ClientMessages(MessageResourse messageResourse) 
    {
        this.messageResourse = messageResourse;
    }
    public static String getMessages(String code) 
    {
        return messageResourse.getMessage(code);

    }
}

Код класса MessageResourse

public class MessageResourse {
    public String getMessage(String code) 
    {
        return code;
    }
}

Тестирование ClassB

import static org.easymock.classextension.EasyMock.createMock;

import org.easymock.classextension.EasyMock;
import org.testng.Assert;
import org.testng.annotations.Test;

public class ClassBTest
{
    private MessageResourse mockMessageResourse = createMock(MessageResourse.class);
    private ClassB classToTest;
    private ClientMessages clientMessages;


    @Test
    public void testGetDisplayName()
    {

    EasyMock.expect(mockMessageResourse.getMessage("ClassB.title")).andReturn("someTitle");

        clientMessages = new ClientMessages(mockMessageResourse);

        classToTest = new ClassB();

        Assert.assertEquals("someTitle" , classToTest.getDisplayName());
        EasyMock.replay(mockMessageResourse);
    }
}

Когда я запускаю этот тест, я получаю следующее исключение:

java.lang.IllegalStateException: отсутствует определение поведения для предыдущего вызова метода getMessage ("title")

При отладке я обнаружил, что это не учитывает вызов методаmockMessageResourse.getMessage ( "ClassB.title") как это было вызвано от construtor (создание объекта ClassB).

Может ли кто-нибудь, пожалуйста, помогите мне, как проверить в этом случае.

Благодарю.

Ответы на вопрос(4)

Ваш ответ на вопрос