小编New*_*ser的帖子

模拟抛出空指针异常.新来的mockito

我正在尝试测试以下方法

  MainClass {
    ....
        Client client;
        WebTarget target;
        boolean doLogin(MultivaluedMap<String, String> headers) {

             client = getRestClient();
             target = client.target(BASE_URL))
                    .path("v1/login");
              MultivaluedMap<String, Object> castedHeaders = castMap(headers);//casts headers by entry.
              Response loginRsp = target
                    .request().headers(castedHeaders)     
                    .post(Entity.entity(buildIusLoginEntity(),
                                        MediaType.APPLICATION_JSON_TYPE));
              if (loginRsp.getStatus() != HttpServletResponse.SC_OK) {

                    return false;
              }
              return true;
        }
   }
Run Code Online (Sandbox Code Playgroud)

使用以下测试类

  @Test
  public void testdoLoginNegative() {
            MainClass m = spy(new MainClass());
            Client mockClient = mock(Client.class);
            WebTarget target = mock(WebTarget.class);

            Response loginRsp = Response.status(500).build();
            doReturn(mockClient).when(m).getRestClient();
            when(mockClient.target(anyString()).path(anyString())).thenReturn(target);
            //NPE on next line.
            when(target.request().headers(any(MultivaluedMap.class)).post(any(Entity.class))).thenReturn(loginRsp);// this line throws …
Run Code Online (Sandbox Code Playgroud)

java unit-testing mockito powermock

2
推荐指数
1
解决办法
6347
查看次数

如何正确处理此pl/sql for循环中的异常?

首先,我是PL/SQL的相对新手,所以我可能会遗漏一些微不足道的东西.

这是一段代码,我遇到运行问题 -

FOR indx IN 1 .. arr.COUNT
    LOOP
        SELECT COUNT(*), ca.cities
        INTO tmp_count, affected_cities
        FROM PDB.utilities ca
        WHERE (ca.app_city_id           = cityid
        AND ca.app_plumbing_id = arr(indx))
        AND( BITAND(options1,2)        = 2
            OR BITAND(options1,1)          = 1)
        GROUP BY ca.cities;

        IF tmp_count                  >=0 THEN
             -- We have an affected app so collect metrics
            IF plumbings(indx_mv)  ='0Ci30000000GsBN' THEN
                count_wrigley:= count_wrigley+tmp_count;
            END IF;
            counter:= counter+tmp_count; --overall count. 
            tmp_count:=0;
            affected_cities:=null;
        END IF;

        EXCEPTION -- error thrown here !
            WHEN NO_DATA_FOUND THEN
                CONTINUE;
        END;  
    END LOOP; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql

1
推荐指数
1
解决办法
437
查看次数

标签 统计

java ×1

mockito ×1

oracle ×1

plsql ×1

powermock ×1

unit-testing ×1