如何验证方法是否由Mockito从具有相同类的其他方法调用

佩洛斯:

我想测试一些在同一类中调用其他方法的方法。它们基本上是相同的方法,但是具有不同数量的参数,因为数据库中有一些默认值。我在这个上展示

public class A{
    Integer quantity;
    Integer price;        

    A(Integer q, Integer v){
        this quantity = q;
        this.price = p;
    }

    public Float getPriceForOne(){
        return price/quantity;
    }

    public Float getPrice(int quantity){
        return getPriceForOne()*quantity;
    }
}

因此,我想测试在调用方法getPrice(int)时是否调用了方法getPriceForOne()。基本上像平常一样调用getPrice(int)并模拟getPriceForOne。

import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
....

public class MyTests {
    A mockedA = createMockA();

    @Test
    public void getPriceTest(){
        A a = new A(3,15);
        ... test logic of method without mock ...

        mockedA.getPrice(2);
        verify(mockedA, times(1)).getPriceForOne();
    }
}

请记住,我有一个更复杂的文件,对其他人来说是一个实用程序,它们必须全部放在一个文件中。

denis.solonenko:

您将需要一个间谍,而不是模拟A:

    A a = Mockito.spy(new A(1,1));
    a.getPrice(2);
    verify(a, times(1)).getPriceForOne();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从调用其他方法的方法

JAVA是否可以调用其他方法X倍的方法?

的Mockito:如何验证的方法,用确切参数忽略了对其他方法的调用只能调用一次?

如何在其他方法中调用变量

如何在枚举中调用其他方法?

JMock允许其他方法调用

是否有很好的方法知道某个方法是由父级调用还是从其他位置调用?

使DynamicMethod调用其他方法

如何使编译器检查2个方法参数是否具有相同类型?

PYQT5:使用for循环或其他方法创建许多相同类型的QSlider

Java证书验证在其他方法上为false,但在相同类中的相同方法上为true

如何从其他方法引用变量?

如何使用锁或其他方法暂停由asyncio创建的任务?

如何模拟其他方法内部的方法调用返回

如何在onCreat()中具有变量的值以在其他方法中使用

PHPUnit:测试调用其他方法的方法

当测试调用其他方法的方法时,如何避免多次编写相同的测试

用其他方法调用函数

改为调用其他方法

Java是否嵌套?其他方法?

检查方法是直接调用还是其他方法调用

如何使用其他方法的输入?

是否有其他方法可以移动、更改和关联其他目录?

在其他方法中调用带参数的方法

Python 类调用其他方法

如何模拟调用其他方法而没有返回值的方法

在方法内设置变量以用于其他方法调用

调用其他方法的python unittest方法

如何在 C# 中调用此方法和调用其他方法?