欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI

页面树结构

欢迎使用普元文档库

Skip to end of metadata
Go to start of metadata
  文件 已修改
ZIP 压缩文件 test.zip 测试用例 七月 12, 2022 by administrator

1、 问题(场景)描述:

如果使用Junit进行EOS程序的测试

2、 适用环境:

通用

3、 原因分析、解决方法或过程:

(1)  导入附件源代码

(2)  导入测试框架项目,启动服务器,执行用例

 逻辑流测试用例:com.primeton.eos.BizFlowTest

public class BizFlowTest {

 

    @Test

    public void testBizFlow(){

        try {

            ServiceContext context = new ServiceContext();

            //传入逻辑构件名

            ILogicComponent logicCompoent = context .locateBizLogic("com.primeton.eos.newcomponent");

           

            //第一个参数是逻辑流方法名,第二个参数是逻辑流的输入参数

            Object[] objs = logicCompoent.invoke("newbiz" , new String[]{"test"});

           

            //检查逻辑流返回值,达到测试目的

            Assert.assertEquals("test", objs[0]);

        } catch (Exception e) {

            //正常情况下,调用逻辑流出错,则用例失败

            Assert.fail();

            e.printStackTrace();

        } catch (Throwable e) {

//          正常情况下,调用逻辑流出错,则用例失败

            Assert.fail();

            e.printStackTrace();

        }

    }

}

        页面流测试用例:com.primeton.eos.PageFlowTest

public class PageFlowTest {

 

    IProcessor processor = new HttpPageFlowProcessor();

 

    {

        processor.setRequestSuffix(".flow");

    }

   

    /**

     * 调用页面流,检查页面流中设置的request变量

     * @throws Exception

     */

    @Test

    public void testPageFlow() throws Exception {

 

        //分别mock一个请求和响应

        HttpServletRequestMock request = new HttpServletRequestMock();

        HttpServletResponseMock response = new HttpServletResponseMock();

       

        //通过request发起页面流的调用

        request.setRequestURI("com.primeton.eos.newflow.flow");

       

        processor.process(request, response);

 

        //检查页面中设置的请求变量是否正确,以达到测试目的

        assertEquals("123", request.getAttribute("ret"));

    }

}

评论

  1. 用户 -4cac6 发表:

    不能在Studio里直接使用Junit测试,由于EOS是一个WEB应用,本质上是两个进程,无论是不是EOS应用这样做都是无法执行的。

    1、EOS Server是一个Web应用,逻辑流运行在EOS Server这个进程内。在Studio中启动Server,是一个单独的进程,不同于Studio的原有的那个进程。

    2、Eclipse 中默认的JUnit在调试时,是另外一个进程,与上述的EOS Server并不属于统一个进程。

    3、隶属于两个进程,无论是EOS程序还是其他语言的程序,都无法直接进行访问,只可以通过远程访问的方式进行,。

    4、如果需要在采用Junit进行单元测试,需要将EOS Server和Junit的用例运行在一个进程内。可以将Junit的用例写在EOS Server这个Web容器内,放在一个进程执行,调用才不会出错,即不能简单的通过Eclipse里的JUnit的工具栏进行单元测试。