小编Mos*_*lum的帖子

使用Mockito验证方法后没有调用任何内容

我正在使用Mockito在Java中编写单元测试,我想验证某个方法是最后一个调用对象的方法.

我正在测试的代码中做这样的事情:

row.setSomething(value);
row.setSomethingElse(anotherValue);
row.editABunchMoreStuff();
row.saveToDatabase();
Run Code Online (Sandbox Code Playgroud)

在我的模拟中,我并不关心我在行上编辑所有内容的顺序,但是在我保存它之后我不再尝试对它做任何事情是非常重要的.有没有办法做到这一点?

请注意,我不是在寻找verifyNoMoreInteractions:它不会确认saveToDatabase是最后调用的东西,如果我在没有显式验证的行上调用任何内容,它也会失败.我希望能够说出类似的话:

verify(row).setSomething(value);
verify(row).setSomethingElse(anotherValue);
verifyTheLastThingCalledOn(row).saveToDatabase();
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,我将从JMock测试中切换到Mockito:

row.expects(once()).method("saveToDatabase").id("save");
row.expects(never()).method(ANYTHING).after("save");
Run Code Online (Sandbox Code Playgroud)

java unit-testing mocking mockito

47
推荐指数
2
解决办法
4万
查看次数

检查待处理的Django迁移

在Django中,是否有一种简单的方法可以检查是否已运行所有数据库迁移?我发现manage.py migrate --list,它给了我想要的信息,但格式不是机器可读的.

对于上下文:我有一个脚本,在迁移数据库之前不应该开始运行.由于各种原因,从正在运行迁移的进程发送信号会很棘手.所以我想让我的脚本定期检查数据库以查看是否所有迁移都已运行.

python django django-migrations

30
推荐指数
6
解决办法
3万
查看次数

测试来自Selenium的onbeforeunload事件

我正在尝试为使用onbeforeunload事件的网页编写Selenium测试,以便在离开之前提示用户.Selenium似乎无法识别出现的确认对话框,或提供点击确定或取消的方法.有没有办法做到这一点?我正在使用Java Selenium驱动程序,如果这是相关的.

html javascript java selenium onbeforeunload

11
推荐指数
1
解决办法
2931
查看次数

从JUnit测试确认FileReader已正确关闭

我正在编写一些使用FileReader从一些输入文件加载数据的Java代码.我正在大量使用TDD,并且我想添加一些测试,以确保在我完成它时通过在阅读器上调用close()来正确清理.不幸的是,我无法想出一个很好的方法来测试它.有人有任何见解吗?

编辑添加:我知道我可以使用模拟对象显式测试close调用,但我想尽可能避免使用它,部分原因是因为我发现它们导致了一些比较脆弱的代码,部分是因为我很好奇它是否可能编写能识别不关闭文件效果的代码.)

java junit unit-testing filereader

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