我想测试在某个方法被执行的时候,另外一个方法是否被他调用了,这样的代码应该如何写呢?

解决方案 »

  1.   

    1,在你想调用的方法里打印被调用的信息,比如,System.out.println(“被调用了”);
    2,使用jmock,这个框架可能正是你需要的,比如,你想让某个方法确实被调用了,你可以用它设定该方法被调用,甚至可以设定调用次数和返回值。
    具体用法到他的网站上去查查看。
      

  2.   

    我现在是用junit测试程序,希望用junit证明某个方法被调用了,这样的功能junit可以完成吗?
      

  3.   

    jmock本身就是为junit开发的,你可以上它的网站上去看看,它符不符合你的要求。
    说实话,我不是很明白你的意思,一个方法有没有被调用,如果你是在test方法里直接调用过了,
    这是很明显的,如果是通过其他方法间接调用,这个本身是程序逻辑的问题。所以,你要测试该
    方法有没有被调用,应该测试你的程序逻辑对不对,或者说看输入和输出是否正确。
      

  4.   

    举个例子吧:
        public void test (String arg) {
            if(arg.equals("A")) {
                methodA();
            } else {
                methodB();
            }
        }
    这里methodA和methodB是两个方法。
    我想测试,当执行完方法test后,是方法methodA被调用了还是方法methodB被调用了。
      

  5.   

    。那不是要看你的参数吗?你给了参数A,就调用A方法,你给了参数B,就调用B方法。我觉得你想测试的内容似乎不是junit的初衷。junit测试的就是方法的实现是不是和设计的一样,测试的是方法本身,不是这种调用关系吧。你想知道方法有没有被调用,junit怎么会知道呢?它只是一个框架,和普通的java applications一样的。最后再说一下,你可以去看一下jmock,看看符不符合你的要求。
      

  6.   

    我记得好像可以啊。也可能我记的不对。还是谢谢你。我去看看jmock。
      

  7.   

            public   void   test   (String   arg)   { 
                    if(arg.equals("A"))   { 
                            methodA(); 
                            assert.ture; //貌似这么写。调用对了就返回嘛,呵呵
                    }   else   { 
                            methodB(); 
                    } 
            } 
      

  8.   

    Mock测试
    常见的框架有JMock和EasyMock
    本人更喜欢EasyMock(面向接口)