Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有人请帮助我找到如何使用mockito模拟数据库吗_Java_Database_Testing_Mocking_Mockito - Fatal编程技术网

Java 有人请帮助我找到如何使用mockito模拟数据库吗

Java 有人请帮助我找到如何使用mockito模拟数据库吗,java,database,testing,mocking,mockito,Java,Database,Testing,Mocking,Mockito,我不熟悉单元测试。我想知道如何使用mockito框架来模拟数据库。我厌倦了寻找。请帮我解决这个问题。你不会像你说的那样“模拟数据库”。模拟框架的目的如下: 假设您有一个名为myMethod的方法,它调用一些您相信可以工作的第三方方法,因此这些方法不在测试中 您可以告诉模拟框架: 当myMethod使用参数x和y调用thirdPartMethod1时,它将返回z myMethod将分别使用参数a、b、c、d调用第三方方法2 4次。如果没有,请通过测试。 因此,mocking框架本身将取代第三方方法

我不熟悉单元测试。我想知道如何使用mockito框架来模拟数据库。我厌倦了寻找。请帮我解决这个问题。

你不会像你说的那样“模拟数据库”。模拟框架的目的如下:

假设您有一个名为myMethod的方法,它调用一些您相信可以工作的第三方方法,因此这些方法不在测试中

您可以告诉模拟框架:

当myMethod使用参数x和y调用thirdPartMethod1时,它将返回z myMethod将分别使用参数a、b、c、d调用第三方方法2 4次。如果没有,请通过测试。 因此,mocking框架本身将取代第三方方法,并在设置它时返回它被告知的内容,例如,当myMethod调用thirdPartMethod1时,它将返回预期结果

它还将检查调用是否如预期的那样,例如,第三方方法2是否确实使用正确的参数调用了正确的次数

因此,当模拟数据库调用时,实际上并不是在调用数据库。例如,您可以告诉Mockito基于JDBC ResultSet接口创建一个mock,并告诉它在使用某些参数调用时返回什么,将调用它上面的方法多少次,以及将使用哪些参数调用这些方法。实际的数据库和真正的JDBC实现根本不涉及


如果你真的必须使用数据库,考虑

请向我们展示你迄今为止所尝试的内容。请提出具体的问题,我们很乐意花时间回答。你自己有没有尝试过解决这个问题?问题是我需要根据数据库的结果来测试这个方法。我如何测试它呢?当调用getXXX时,您模拟一个ResultSet并告诉Mockito返回所需的结果,其中XXX是您想要的任何类型,例如getInt、getStringetc@NickJ很好的回答我自己说的再好不过了请你能给我一个麦克风结果集的示例代码它对我真的很有帮助给你: