如何模拟未实现接口的默认方法?

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

我正在尝试使用 Junit/Mockito/PowerMockito

我有一个接口类

import retrofit2.Call;
import com.learning.model.user.User;
import java.io.IOException;

public interface UserService {
        @GET("/serviceUser/{userId}")
        Call<User> getUser(@Path("userId") String userId);
    
        default User getUserById(String userId) {
            try {
                return getUser(userId).execute().body();
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
        }

        static UserService getUserService(){
            //setup retrofit ...
        }
}

在另一个服务中:

public class DemoUser {
    public void doUserBusiness(String userId) {
        User user = UserService.getService().getUserById(userId);
        //do business logic here
    }
}

那我如何在测试

UserService.getService().getUserById(userId);
方法时模拟
doUserBussiness
返回一个模拟用户?

java junit mockito powermock powermockito
© www.soinside.com 2019 - 2024. All rights reserved.