我有下面的课
public class EmailManager{
protected String getEmailContent(String content,String image){
String result = content.toPrettyLook(); //this is an inner method
result+="<img src='" + +"' />";
return result;
}
protected String getImageLocation(String image){
//write image to disc
return newLocation;
}
}
public class EmailManagerTest{
EmailManager emailManager;
@Test
public void testEmailContent(){
String result = emailManager.getEmailContent("Hello World");
}
}
>
我应该在EmailManager上方添加什么注释?@Spy@Mock还是@Autow的?
如何告诉Mockito不要执行getImageLocation(getEmailContent正在调用的方法)并且总是返回而不是“new location”?我看了很多文章,搞不清“什么时候”“存根”“退货”
这里需要的是Spy:一个部分模拟的对象。您想测试真正的getEmailContent()
方法,但您想存根同一对象的getImageLoction()
方法。所以测试应该看起来像
public class EmailManagerTest{
private EmailManager emailManager;
@Test
public void testEmailContent(){
emailManager = spy(new EmailManager());
doReturn("new location").when(emailManager).getImageLocation("someImage");
String result = emailManager.getEmailContent("Hello World", "someImage");
// assertions ...
}
}
如果您想使用注释让Mockito为您创建间谍,那么您可以使用间谍注释:
@Spy
private EmailManager emailManager = new EmailManager();
不要忘记添加一个调用< code > mockito annotations . init class(this)的@Before方法。
莫奇托有很好的记录。读留档。
因为这个方法是在运行时执行的,所以需要对它进行测试吗
您好,我有一个将人员添加到团队的方法。我想为此方法编写一个测试,但我是junit/mockito测试的新手,所以我有很多问题:这是我的添加方法: 这两个实体(人员/团队)之间存在关系,这是我的测试代码,但它不起作用: 模拟组合:
我是莫基托的新手。我试图通过模拟数据库交互为服务编写jnuit: 我有下面的类(只是实际类的代表) 我的测试课就像是 但是当我运行这个测试时,它仍然调用实际的db调用并从DB中检索值,而不是模拟值,我应该模拟sql连接和非默认构造函数吗?我一无所知。 -- 更新 正如人们所建议的那样,我将DAO实例化移动到我的服务构造函数中,并且还使用了Spy,但是我仍然调用了实际的DB调用而不是模拟调用。
我正在尝试测试一个带有空数据库/没有从数据库返回任何内容的场景。 我用mockito编写了一个junit4测试类。有一个由Mockito创建的服务类和dao类。一开始,我定义了“when”方法,它起作用了。后来,我试着拉出“when”方法调用,看看会发生什么,反正它起作用了。为什么? 当调用myService.getDistinctObjectList()时,myService类将调用myDao的
问题内容: 我有一个要测试的类。只要有可能,我都会对该类进行依赖注入,该注入依赖于其他类的对象。但是,我遇到了一种情况,我想在不重新构造代码的情况下模拟对象,而不是应用DI。 这是要测试的课程: 我为此的测试课程是: 我想不出一种解决方案来模拟Dealer类中的打印对象。自从我在Test类中对其进行了模拟,但是它是在被测试的方法中创建的。我做了研究,但找不到任何好处。资源。 我知道从该方法中创建P
问题内容: 这可能吗?我尝试过,但EasyMock抱怨时间必须> = 1 问题答案: 我设法提出了一个解决方案: