我正在尝试测试以下方法
  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) 首先,我是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)