如何在不使用power mockito的情况下模拟局部变量b(使用私有方法)?

时间:2016-08-11 14:22:52

标签: java unit-testing mocking

public class A {
    public void methodOne(int argument) {
        //some operations
        B b = methodTwo(int argument);

        // some operations based on b
        // switch cases based on returned values of b

    }

    private void methodTwo(int argument)
    DateTime dateTime = new DateTime();
    //use dateTime to perform some operations
}

1 个答案:

答案 0 :(得分:0)

理想情况下,你不要!

含义:你的methodOne()返回一个特定的值。因此,如果可能,您应该更喜欢测试内部。

因此,您应该编写使用各种参数调用methodOne()的测试用例;然后断言该方法返回的值与您的异常相匹配。

如果你真的需要控制那个" B"对象为了进行合理的测试,正确的方法是使用依赖注入并以某种方式为你的测试类提供一个B对象。因为那时你可以创建一个模拟的B并将其交给你正在测试的类。

换句话说:学习如何编写可测试的代码;例如,通过观看这些videos。认真;这材料的每一分钟都值得你花时间。