我正在使用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) 在Django中,是否有一种简单的方法可以检查是否已运行所有数据库迁移?我发现manage.py migrate --list,它给了我想要的信息,但格式不是机器可读的.
对于上下文:我有一个脚本,在迁移数据库之前不应该开始运行.由于各种原因,从正在运行迁移的进程发送信号会很棘手.所以我想让我的脚本定期检查数据库以查看是否所有迁移都已运行.
我正在尝试为使用onbeforeunload事件的网页编写Selenium测试,以便在离开之前提示用户.Selenium似乎无法识别出现的确认对话框,或提供点击确定或取消的方法.有没有办法做到这一点?我正在使用Java Selenium驱动程序,如果这是相关的.
我正在编写一些使用FileReader从一些输入文件加载数据的Java代码.我正在大量使用TDD,并且我想添加一些测试,以确保在我完成它时通过在阅读器上调用close()来正确清理.不幸的是,我无法想出一个很好的方法来测试它.有人有任何见解吗?
编辑添加:我知道我可以使用模拟对象显式测试close调用,但我想尽可能避免使用它,部分原因是因为我发现它们导致了一些比较脆弱的代码,部分是因为我很好奇它是否可能编写能识别不关闭文件效果的代码.)
java ×3
unit-testing ×2
django ×1
filereader ×1
html ×1
javascript ×1
junit ×1
mocking ×1
mockito ×1
python ×1
selenium ×1