小编sia*_*ame的帖子

无法将间谍放在HttpSession/Mockito上

我想要部分嘲笑,Httpsession但为此我需要窥探而不是嘲笑它,而且这是一个我已经无法获得的请求对象无法获得的接口.

请帮忙.

换句话说,我怎样才能得到HttpSession没有HttpServletRequest物体的物体.

更多详情::

有一个我要测试的servlet,servlet有会话,并在会话中放入"loginBean"(包含loged在用户相关信息中),我已经嘲笑过并且工作正常,现在在GUI级别,有2个选项卡,DetailSet1, detailsS​​et2,当您输入DetailSet1的数据时,它会保存在会话中并且还会执行一些业务逻辑,现在它来到DetailsS​​et2,您已经在会话中拥有DetailSet1,因此它可以满足所有需要,数据保存在DB中.不,很明显我必须模拟,HttpSession因为我从容器外部运行单元案例,但是存储的数据也在Httpsession ,如果我也嘲笑那些,它就会破坏测试的目的.回到我开始的时候,我需要Httpsession返回模拟数据的对象,我已经模拟了它,并且假设它像HttpSession其他情况的任何普通对象一样.就像,如果我做session.setAttribute("name","Vivek"),那么session.getAttribute("name")应该return "Vivek"在那之后,但是在模拟对象的情况下它返回null原因?因为我没有嘲笑行为getAttribute("name").我真的很抱歉,如果我仍然可以不让任何人理解我的要求.

用简单的词语部分嘲笑HttpSession.

java unit-testing mockito

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

使用chef安装java

我知道如何使用终端在linux机器上安装java.但我想使用Chef Framework自动化安装.我有两台机器M1和M2.我在机器M1上,想在机器M2上安装java.这是我在使用终端....

首先我SSH进入机器M2,我做了以下事情......(在这里我从第三方存储下载java文件.)

Step1:-
cd setup

step2:-
wget http://downloads.company.com/downloads/DevTools/jdk/6.0/jdk-6u31-linux-i586.bin

Step3:-
chmod +x jdk-6u31-linux-i586.bin

Step4:-
yes | ./jdk-6u31-linux-i586.bin

Step5:-
cd /usr/bin

Step6:-
mv java javaorg

Step7:-
cd /usr

Step8:-
ln -s /home/harish/setup/jdk1.6.0_31 java

Step9:-
echo 'export PATH=$PATH:/usr/java/bin' > /etc/profile.d/alljava.sh;echo 'export JAVA_BINDIR=/usr/java/bin' >> /etc/profile.d/alljava.sh;echo 'export JAVA_ROOT=/usr/java' >> /etc/profile.d/alljava.sh;echo 'export JAVA_HOME=/usr/java' >> /etc/profile.d/alljava.sh;echo 'export JRE_HOME=/usr/java/jre' >> /etc/profile.d/alljava.sh

Step10:-
source /etc/profile.d/alljava.sh

Step11:-
echo $JAVA_HOME

Step12:-
java -version
Run Code Online (Sandbox Code Playgroud)

我有以下问题:

  1. 什么是问题的类别(厨师独奏或shef服务器)
  2. 我是否需要安装机器M2厨师.
  3. 我从GitHub下载了JAVA的食谱,但我不知道该如何处理.

我已经写了一些代码在SAME机器上安装java ..但它也无法正常工作..代码:

 #cookbook/java/recipe/default.rb    

    *####This will install JAVA on machine …
Run Code Online (Sandbox Code Playgroud)

ruby java chef-infra

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

使用inject的数组中的前2个值

我试图从这个数组中获取前2个值inject,

a = [1, 2, 5, 7, 4, 9, 2]

b = a.inject(Array.new(2) {0}) {|r, e|
  if e > r[0]
    r[1] = r[0]
    r[0] = e
  end
}
Run Code Online (Sandbox Code Playgroud)

但我不断收到错误'block in <main>': undefined method '[]' for nil:NilClass (NoMethodError)在该行r[1] = r[0]

我怎么能改变它,以便r[0]代表最大值a,r[1]第二大?或者是否有更好的,更像红宝石的方式?

ruby arrays

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

标签 统计

java ×2

ruby ×2

arrays ×1

chef-infra ×1

mockito ×1

unit-testing ×1