我是开发的新手,尤其是单元测试的新手。我想我的要求很简单,但是我很想知道其他人对此的想法。
假设我有两个这样的类-
public class First {
Second second ;
public First(){
second = new Second();
}
public String doSecond(){
return second.doSecond();
}
}
class Second {
public String doSecond(){
return "Do Something";
}
}
假设我正在编写单元测试到测试First.doSecond()
方法。但是,假设我想像这样模拟Second.doSecond()
课程。我正在使用Mockito来做到这一点。
public void testFirst(){
Second sec = mock(Second.class);
when(sec.doSecond()).thenReturn("Stubbed Second");
First first = new First();
assertEquals("Stubbed Second", first.doSecond());
}
我看到模拟未生效,并且断言失败。没有办法模拟我要测试的类的成员变量。?
您需要提供一种访问成员变量的方式,以便您可以进行模拟传递(最常见的方式是使用参数的setter方法或构造函数)。
如果您的代码没有提供执行此操作的方法,则TDD(测试驱动开发)会将其错误地考虑在内。
使用mockito inline如何测试静态函数(使用stubing其他静态函数)或mock/stub某些内部依赖类? 以下是示例: 具有内部依赖于java的类Util。安全消息摘要 容器类有一些静态函数要测试 希望测试,并将返回为null,以便somettext有望返回。 由于它是静态函数,因此使用powermock进行了测试。 当使用模拟存根时。调用getStringDigest(),返回nu
有什么方法可以模拟这个私有方法来测试我编写的方法吗?
我有一个类需要测试。以下是的定义: 并根据值从数据库中检索一些要操作的数据。对于该数据库,值通过JSON文件持久化。 这使事情复杂化了。我需要的是在测试时将其设置为某个特定的日期。有没有办法可以用mockito模拟局部变量的值?
我正在将Powermock从我目前正在进行的项目中移除,因此我试图仅用Mockito(Mockito-Core-2.2.28)重写一些现有的unitary测试。 无法模拟/Spy类Com.ExternalPackagePath.ExternalClass Mockito无法模仿/监视,因为: 最终类 正如Mockito文档(https://github.com/Mockito/Mockito/wi
基类 在派生类中不应用组合和其他函数。如果是,我是否应用了错误的模式?我应该如何处理相同的?
我试图使用PowerMockito在我正在测试的代码中模拟java.net.URL类的创建。基本上,我希望防止真正的HTTP请求发生,而是1)在请求发出时检查数据,2)在模拟响应中提供我自己的测试数据。这就是我正在尝试的: 我要测试的代码如下所示: 在前面的测试场景中,我模拟了wlInvokeUrlString以匹配“MyURLString”。我还尝试使用whenNew行的各种其他形式,尝试注入模