在 java 中使用 powerMock 类新对象模拟的测试用例

问题描述 投票:0回答:0

我正在尝试模拟在另一个类中创建的用户的类实例,该类是

MyClass
方法计数。

我想为

Myclass
方法写单元测试用例
count

下面是示例代码

import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
class User{
    public int count(){
        return 123;
    }
}

class MyClass{
    public int count(){
        User user = new User();
        return user.count();
    }
}


@RunWith(PowerMockRunner.class)
@PrepareForTest( MyClass.class)
public class ServiceTestClass{
  
    @Test
    public void testMethod() throws Exception {


        User user = Mockito.mock(User.class);
        when(user.count()).thenReturn(45);
        whenNew(User.class).withAnyArguments().thenReturn(user);
        MyClass myClass= new MyClass();
        System.out.println(myClass.count());
        verifyNew(User.class).withNoArguments();

    }

}

理想情况下,

System.out.println(myClass.count());
应该打印
45
但它正在打印
123
.

任何人都可以帮助我在这里做错了什么吗?

java unit-testing powermock
© www.soinside.com 2019 - 2024. All rights reserved.