20221214每日学习

leetcode

题目:130被围绕的区域
思路:
1.遍历所有边界。
2.如果遇到o,就开始bfs像外边延展,可以将这时候的o设置为e,然后再遍历所有的内部点,将e修改为o,将原生的o修改为x。

题解:



class Solution {
    int m;
    int n;
    public void solve(char[][] board) {
       m=board.length; //4
      n=board[0].length;//6

      for(int i=0;i<m;i++){  
          dfs(board,i,0);// 
          dfs(board,i,n-1);
      }

      for(int i=1;i<n-1;i++){
          dfs(board,0,i);
          dfs(board,m-1,i);
      }
      for(int i=0;i<m;i++){
          for(int j=0;j<n;j++){
              if(board[i][j]=='A')board[i][j]='O';
              else if(board[i][j]=='O')board[i][j]='X';
          }
      }
    }
    public void dfs(char[][] board,int i,int j){
        if(i<0||i>=m||j<0||j>=n||board[i][j]!='O')return;
        board[i][j]='A';
        dfs(board,i+1,j);
        dfs(board,i,j+1);
        dfs(board,i-1,j);
        dfs(board,i,j-1);
    }
}

这题调试花的时间太长了,最终发现出来的错误极其可笑。就是在if里的判断条件,将n写成了m。所以以后还是要给变量好好命名不要弄混了。

Spring测试

Spring的测试:
切面测试。并非纯粹的单元测试。而是将系统的一部分抽离出来,进行测试。
Mockito :有能力模仿出任意一个假对象。
利用SpringBootTest注解就可以调用对应的Spring资源。

如果调用服务的时候,有间接调用的时候,SpringIoc就可以帮我们自动注入的对象即是我们的mockBean了。

controller的测试:MockMVC模拟发出的测试。越往上写测试mock越多。
JSONPath用来进行测试。
jacco用来展示测试结果。
所有的测试工作都要保证保存起来。就是自己的测试应该是用代码来实现的。
注意调试是尽量用log而不是用debug。

Mock Test的学习

发现讲解mock的很少,还是自己看文档吧。将mock类打开,就可以看到Mock对应的项目。
参考文档见:https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html。

maven项目的目录结构还挺重要的,自己用IDEA的手动创建test,发现没有对应的目录结构生成不了。就ruoyi那个项目,没有test文件。

似乎mock也只是学习模仿一下别人的代码即可。

posted @ 2022-12-14 21:52  SlowSail  阅读(22)  评论(0)    收藏  举报