java和actionscript类没有被嘲笑

Posted

技术标签:

【中文标题】java和actionscript类没有被嘲笑【英文标题】:java and actionscript class is not getting mocked 【发布时间】:2018-12-24 23:59:01 【问题描述】:

我正在尝试为 java 控制器编写 moct 测试。当我将它作为一个 junit 运行时它工作正常,但是当我在构建中运行时它会失败。

这是我的测试课。

@WebAppConfiguration
@RunWith(PowerMockRunner.class)

public class myTestClass  

    private MockMvc mockMvc;

    @Mock
    MyActionScript myActionScript; // It is failing here

    @Mock
    MyBaseClass myBaseClass;  // It is failing here


    @InjectMocks
    MyControllerClass myControllerClass;

    @Before
    public void setUp() throws Exception 
        MockitoAnnotations.initMocks(this);
        mockMvc = MockMvcBuilders.standaloneSetup(MyControllerClass).build();
    

    @Test
    @PrepareForTest(TestClass.class)
    public void testmyMethod()throws Throwable
       //SOme code
    

这里的问题是,一旦我尝试模拟我的 actionscript 类或 myBaseClass,它就会失败。

这是我的控制器类

@Controller
public class ReportsController extends BaseController 
    @RequestMapping(value = "/someurl", method = RequestMethod.POST, consumes = "application/json")
    public @ResponseBody somePojo methodList(@RequestBody somePojo requestObj) throws Exception 
        somePojo response = (somePojo) this.execute(requestObj,SOME_CONSTANT);
        return response;
    

我的控制器类扩展到某个抽象类。

这是我的 myBaseClass

@Controller
public abstract class myBaseClass extends myActionScript 
    //Some Code and some methods

如果您需要其他任何东西,请告诉我。

【问题讨论】:

【参考方案1】:

尝试使用 @RunWith(MockitoJUnitRunner.class)@InjectMocks@Mock 注释。

你在 MyControllerClass 中使用 MyActionScript 和 MyBaseClass 吗? 如果是,试试这个:

@WebAppConfiguration
@RunWith(MockitoJUnitRunner.class)
public class myTestClass  

    private MockMvc mockMvc;

    @Mock
    MyActionScript myActionScript; // It is failing here

    @Mock
    MyBaseClass myBaseClass;  // It is failing here

    @InjectMocks
    MyControllerClass myControllerClass;

    @Before
    public void setUp() throws Exception 
        MockitoAnnotations.initMocks(this);
        mockMvc = MockMvcBuilders.standaloneSetup(MyControllerClass).build();
    

    @Test
    @PrepareForTest(TestClass.class)
    public void testmyMethod()throws Throwable
       //SOme code
    

【讨论】:

感谢您的回答。是的,我正在从 actionScript 扩展 myBaseClass。我按照你的建议做了。在 Maven 构建中仍然遇到相同的错误。运行 com.jpmc.wss.adr.controller.ReportsControllerTest log4j:WARN 找不到记录器的附加程序(com.frmwrk.geek.bootstrap.BootstrapServicesInitializer)。 log4j:WARN 请正确初始化log4j系统。 我问了另一个问题,我在哪里发布了我的完整日志。请检查这个问题。 ***.com/questions/51381165/…

以上是关于java和actionscript类没有被嘲笑的主要内容,如果未能解决你的问题,请参考以下文章

Android单元测试没有被嘲笑

useEffect 钩子没有被 jest.spyOn 嘲笑

绝了,被领导和同事嘲笑了,2月无情被辞,想给测试人提个醒...

尴尬...我被同事和领导嘲笑了,因为不会Python接口自动化?

靠...我被同事和领导嘲笑了,因为不会Python接口自动化?

尴尬...我居然被领导和同事嘲笑了,因为不会Python接口自动化?