Java 我的存根总是返回空值

Java 我的存根总是返回空值,java,junit,mockito,Java,Junit,Mockito,在下面的代码中,我试图用一些值模拟EmailService类和存根方法send message1,但它总是返回null值 package com; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class TestFil

在下面的代码中,我试图用一些值模拟EmailService类和存根方法send message1,但它总是返回null值

package com;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class TestFile {

    private FacebookService facebookService;

    @Mock
    private EmailService mockedEmailService;

    @Before
    public  void setUp() {
        EmailService emailService = mock(EmailService.class);
        when(emailService.sendMessage1("1","1")).thenReturn("dfdfgdfg");
         facebookService = new FacebookService(emailService);

    }

    @Test
    public void testSendMessage() {
        String actualResult = facebookService.sendMessage("msg", "recepient");
        System.out.println(actualResult);
    }
}
FacebookService


您当前只匹配/存根调用sendMessage11,1,但通过sendMessage1A、B或sendMessage1调用它,您可能应该执行以下操作:

when(emailService.sendMessage1(anyString(), anyString())).thenReturn("dfdfgdfg");

您需要为此导入。

请停止在注释中添加代码,使用该功能。您实际实现的sendMessagemsg,recipient没有任何意义。您不会将参数传递给emailService。您可以使用神奇的常量值对它们进行硬编码。真的不清楚你想做什么。这没有帮助。当我们存根时,我想我们可以将任何值传递给参数。@DeepakMehra如果它没有帮助,那么您的设置中就有问题了。您模拟了EmailService对象。你通过了测试,你的班级。您调用了被测试的方法,该方法应该调用您的mock。所有这些看起来都是正确的。从这个意义上说:改进你的问题,真正包含一个完整的问题!
when(emailService.sendMessage1(anyString(), anyString())).thenReturn("dfdfgdfg");