我想让你问几个问题,向你请教:
我想测试我的公共方法(我使用Spring Boot、Mockito、JUnit):
@Service
public class MyClass{
public Long getClientId(List<String> nameSurname) throws AuthorizationException {
Long operatorId;
if(...){
(... something not interesting ...)
User user = getUserByLogin("AnthonyGates2");
operatorId = nonNull(user) ? user.getOperatorId() : null;
} else {
List<User> users = getUserListByLogin("AnthinyGates");
operatorId = isNotEmpty(users) ? return operatorId;
return operatorId;
}
User user = DelegateImpl.getDelegate().getUserByLogin(nameAndSurname);
when(DelegateImpl.getDelegate().getUserByLogin(any())).thenReturn(user);
非常感谢你所有的提示!
向马修问好
仅通过调用公共方法测试单元。我认为您的示例是服务层中的一个类(包含业务逻辑),而两个GetUser...方法应该在一个不同的类中(我认为是在数据层中),在那里它们可以是公共的。通过构造函数将该类作为依赖项注入(在服务对象中),这样您就可以在测试服务类时模拟它。数据层类(带有getUser...方法)也可以通过它自己的单元测试进行测试。
我试图在测试的类中模拟一个私有方法,如下所示。 现在我需要测试方法和mock。 我尝试创建间谍的上述类,但该方法得到调用时,我这样做下面 在第二行本身被调用。而且,不会被模仿。 也许我用错误的方式创建了间谍对象?无法执行
我想为我拥有的一个类编写一个单元测试。这个类有一个公共方法,在公共方法内部有对同一个类中的私有方法的调用。我想模拟对那些私有方法的调用。类与此类似: 对于我的单元测试,我尝试将PowerMock与Mockito和TestNG一起使用。下面是我对测试SomePublicMethod的测试的尝试: 当我运行这个测试时,我会得到一个异常和一些提示: 我在网上看了一些例子,但是我还没有找到一个专门使用Po
克拉斯托斯特。publicMethod-->classtotest.privateMethod(不是mocking)-->classtoinject.publicMethod1(想要mock) 类如下所示
问题内容: 将方法标记为程序包专用类是否有所不同? 之间和此处的可见性是否有实际差异? 问题答案: 如果该类不会被另一个更可见的子类扩展,则唯一的区别是 intent的清晰度* 。将所有方法包都声明为私有,使以后的读者更加难以确定同一包中的其他类将调用哪些方法。 作为我的设计解决方案,这没有多大意义,但是从技术上来说还是有可能的。
我试图编写一个测试来比较字符串的相等性。 下面是应该测试的类的代码片段 这是一个测试类 正如您所看到的,我想测试公共方法,它在同一个类中调用私有方法。这个想法是,我想为私有方法创建一个模拟对象,无论何时从公共方法调用它,它都应该返回常量值 但是它返回,而不是从私有方法返回。 null
问题内容: 我当时正在上课,我想到了几个问题。 我注意到,其他类将使用的公共方法调用了一些私有方法来完成所有工作。现在,我知道OOD的原则之一就是尽可能多地私有化并隐藏所有实现细节。我不确定我是否完全理解其背后的逻辑。 我知道将字段设为私有很重要,以防止将无效值存储在字段中(这只是许多原因之一)。但是,对于私有方法,我不确定为什么它们如此重要。 例如,对于类,我们是否不能将所有实现代码都放入公共方