我有以下课程布局:
public class Service {
ServiceHelper helper;
...class methods...
}
public class ServiceHelper {
Foo foo;
Bar bar;
...class methods...
}
我正在为服务创建一个单元测试,但我想将ServiceHelper用作一个“活动”类,但要模拟ServiceHelper中的构造函数参数。有没有办法通过Mockito实现这一点?
我认为你的例子不是一个好的做法<代码>单元测试应该尽可能小。单元测试的目标是隔离程序的每个部分,并证明各个部分是正确的。
无论如何,你仍然可以尝试这种方法。我希望有帮助。
public class Service {
private ServiceHelper helper;
public Service(ServiceHelper helper) {
this.helper = helper;
}
}
public class ServiceHelper {
private Foo foo;
private Bar bar;
// for unit testing only
ServiceHelper(Foo foo, Bar bar) {
this.foo = foo;
this.bar = bar;
}
}
还有测试课:
public class ServiceTest {
@Test
public void your_test() {
// arrange
Foo mockedFoo = mock(Foo.class);
Bar mockedBar = mock(Bar.class);
ServiceHelper helper = new ServiceHelper(mockedFoo, mockedBar); // the 'live' class
Service service = new Service(helper);
// act
service.doSomething();
// your assert ...
}
}
问题内容: 我的课如下: 在构造函数中的逻辑和是我试图嘲弄的事情。我想要任何调用:返回一个虚拟字符串。 我试过了: 但这似乎不起作用。仍在执行构造函数逻辑,而不是获取的模拟对象。 问题答案: 您发布的代码适用于最新版本的Mockito和Powermockito。也许您还没有准备A?试试这个: A.java MockA.java 两项测试均应通过Mockito 1.9.0,powermockito
考虑下面给出的代码: 我正在尝试编写一个单元测试用例: < li >调用< code >对象b。B()必须被嘲笑 < li >必须模拟对构造函数的调用 这就是我使用Mockito和Powermockito所做的: 第一个模拟成功工作,但第二个模拟使用 失败,并出现以下错误: org.powermock.reflect.exceptions.ConstructorNotFoundException:
问题内容: 我想将构造函数模拟为方法。 在我的测试中,我想做这样的事情: 但是给我这个 错误 知道为什么吗? 问题答案: 您可以使用PowerMock模拟构造函数。 如果由于某种原因而无法使用PowerMock,则最可行的解决方案是将工厂注入到包含此方法的任何类中。然后,您将使用工厂创建对象并模拟工厂。
我正在为我的java类编写测试类。我将Junit5与Mockito一起使用。 我使用的Junit5与Power Mockito不兼容,所以我只使用Mockito。 我有,它具有下面这样的函数,并且在构造函数中初始化了。 当我编写测试用例时,我模拟了,但是由于我们在一个方法中创建,我如何模拟,这样我就可以编写期望值,根据我在测试类中设置的选择获得值?
问题内容: 我试图在此模块中找到一种模拟Redis的方法: 使用以下测试代码: 我还尝试了一些变体,但由于基本需要模拟构造函数,因此我有点受阻,我不确定Sinon是否支持这一点? 不知道在这里还有什么尝试,我也尝试按照这里的建议使用rewire,但是从不设置该私有变量。 我想最终伪造我的错误路径。 我很想听听其他人在测试Node js中的Redis所做的事情。 问题答案: 您的问题不是Sinon是
问题内容: 试图扩大Spock在工作中的吸引力并遇到此问题。实际上是试图为Groovy类编写单元测试,但是它调用了Java。静态方法调用私有构造函数。代码如下: “ SolrZkClient”来自第三方(Apache)Java库。由于它试图连接到ZooKeeper,因此我想对此单元测试进行模拟(而不是在单元测试的内部运行)。 我的测试毫不费力地进入了构造函数,但是我无法超越那个ctor: 反正有这