程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何模拟正在测试的同一类中的另一个方法?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何模拟正在测试的同一类中的另一个方法??

开发过程中遇到如何模拟正在测试的同一类中的另一个方法?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何模拟正在测试的同一类中的另一个方法?的解决方法建议,希望对你解决如何模拟正在测试的同一类中的另一个方法?有所启发或帮助;

我昨天碰到这个,因为间谍最好做doReturn(X).when(spy).method(any())

解决方法

我正在为具有两个方法methodA,methodB的类编写JUnit测试用例。我想在测试用例中模拟对methodA的methodB调用,我正在对正在测试的类使用间谍,但仍然执行R_477_11845@ethodB。

这是课程

 public class someClass
{

     public Object methodA(Object object) 
    {
         object=methodB(object);

        return object;
    }



    public Object methodB(Object object) 
    {
        //do somthing
        return object;
    }
}

这是测试课

  @RunWith( org.power@R_607_10300@.modules.junit4.legacy.Power@R_607_10300@Runner.class )
    @PrepareForTest(someClass.class)
    public class someClassTest {

        private someClass var = null;


        @Before
        public void setUp() {

            var=new someClass();

        }

        @After
        public void tearDown()
            {
            var= null;

        }

        @Test
        public void testMethodA_1()
            throws Exception {
            Object object =new Object();
        someClass spy_var=Power@R_607_10300@ito.spy(var);
        Power@R_607_10300@ito.when(spy_var.methodB(object)).thenReturn(object);

    Object result = var.methodA(object);

        assertNotNull(result);

        }

    }

尽管我已对其进行了模拟,但方法B仍会得到调用。请向我建议一个使用正确方法模拟同一类methodA的methodB调用的解决方案。

大佬总结

以上是大佬教程为你收集整理的如何模拟正在测试的同一类中的另一个方法?全部内容,希望文章能够帮你解决如何模拟正在测试的同一类中的另一个方法?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: