小编man*_*war的帖子

的Mockito.验证方法参数

我用Google搜索了这个,但没有发现任何相关内容.我有这样的事情:

Object obj = getObject();
Mockeable mock= Mockito.mock(Mockeable.class);
Mockito.when(mock.mymethod(obj )).thenReturn(null);

Testeable testableObj = new Testeable();
testableObj.setMockeable(mock);
command.runtestmethod();
Run Code Online (Sandbox Code Playgroud)

现在,我想验证,mymethod(Object o)内部调用runtestmethod(),是用Object调用的o,而不是其他任何调用.但是我总是通过测试,无论我在验证上做什么,例如:

Mockito.verify(mock.mymethod(Mockito.eq(obj)));
Run Code Online (Sandbox Code Playgroud)

要么

Mockito.verify(mock.mymethod(Mockito.eq(null)));
Run Code Online (Sandbox Code Playgroud)

要么

Mockito.verify(mock.mymethod(Mockito.eq("something_else")));
Run Code Online (Sandbox Code Playgroud)

我总是通过考试.如何完成验证(如果可能)?

谢谢.

java junit unit-testing mockito

187
推荐指数
6
解决办法
23万
查看次数

Mock File类和NullPointerException

我正在使用Mockito创建一个File mock对象,它将用作存储新File的目录.

Folder folder = Mockito.mock(File.class);
File file = new Agent().createNewFile(folder, "fileName");
Run Code Online (Sandbox Code Playgroud)

在我的Agent类中:

public File createNewFile(File folder, String filename){
    return new File(folder, "testfile");
}
Run Code Online (Sandbox Code Playgroud)

但是当我在文件内部创建新文件时,我在File的初始化块中得到一个NullPointerException createNewFile:

java.lang.NullPointerException at java.io.File.<init>(File.java:308)
Run Code Online (Sandbox Code Playgroud)

我认为这是因为File没有任何空构造函数,因此在模拟对象时,某些内部状态保持为null.

我采取了错误的方法嘲笑File folder对象吗?我的目标是在创建新文件之前检查一些约束,但我不想依赖文件系统上现有的真实文件夹.

谢谢.

java junit mocking mockito

9
推荐指数
1
解决办法
9377
查看次数

Grails的.调用save后,Id为null

我已经搜索过这个,但仍然无法弄清楚我做错了什么.打完电话后save()的域对象idnull.

我已经读过如果在保存对象时出现问题就会发生这种情况,如果是这样的话,save(flush:true)应该抛出错误,但事实并非如此.看看我的代码和输出:

def pic = new Picture(title:'XX', path:"XXX")
album.addToPictures(pic).save()
if(pic.validate())
   println "no errors. New id: " + pic.id
else
   println "with errors"
Run Code Online (Sandbox Code Playgroud)

输出:

no errors. New id: null
Run Code Online (Sandbox Code Playgroud)

当使用flush:true时

def pic = new Picture(title:'XX', path:"XXX")
album.addToPictures(pic).save(flush:true)
if(pic.validate())
   println "no errors. New id: " + pic.id
else
   println "with errors"
Run Code Online (Sandbox Code Playgroud)

输出:

no errors. New id: 17
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,创建对象时没有任何错误,我应该能够id在调用之后获取对象save().有任何想法吗?

谢谢

null grails flush save

7
推荐指数
1
解决办法
5292
查看次数

Netbeans中的PMD和自动生成的代码

我正在使用Netbeans构建GUI应用程序,PMD"抱怨"自动生成代码中的内容.我可以将PMD配置为忽略自动生成的代码(就像我使用Checkstyle一样)吗?

谢谢.

netbeans pmd

2
推荐指数
1
解决办法
767
查看次数

标签 统计

java ×2

junit ×2

mockito ×2

flush ×1

grails ×1

mocking ×1

netbeans ×1

null ×1

pmd ×1

save ×1

unit-testing ×1