junit 如何为下面的数据库连接语句编写测试用例

zd287kbt  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(181)

conn = DriverManager.getConnection(yamlConfig.getDatabase().get(Constants.URL),yamlConfig.getDatabase().get(Constants.USERNAME), yamlConfig.getDatabase().get(Constants.PASSWORD));
在测试类中,我写了下面的语句,但它抛出了NullPointerException when(yamlConfig.getDatabase().get(Constants.URL)).thenReturn("url"); when(yamlConfig.getDatabase().get(Constants.USERNAME)).thenReturn("user"); when(yamlConfig.getDatabase().get(Constants.PASSWORD)).thenReturn("pass");
你能帮助我们为什么我得到的错误,以及如何可以覆盖它。

dm7nw8vv

dm7nw8vv1#

要为DB连接语句编写测试用例,可以为yamlConfig创建一个模拟对象,然后使用when方法模拟URL、USERNAME和PASSWORD的值。

import static org.mockito.Mockito.*;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;

public class DBConnectionTest {

    @Test
    public void testDBConnection() throws Exception {
        
        // Create mock object for yamlConfig
        YamlConfig yamlConfig = mock(YamlConfig.class);

        // Mock the values for URL, USERNAME, and PASSWORD
        when(yamlConfig.getDatabase().get(Constants.URL)).thenReturn("url");
        when(yamlConfig.getDatabase().get(Constants.USERNAME)).thenReturn("user");
        when(yamlConfig.getDatabase().get(Constants.PASSWORD)).thenReturn("pass");

        // Create connection object
        Connection conn = DriverManager.getConnection(yamlConfig.getDatabase().get(Constants.URL),
                                                       yamlConfig.getDatabase().get(Constants.USERNAME),
                                                       yamlConfig.getDatabase().get(Constants.PASSWORD));
        
        // Assert that connection is not null
        assertNotNull(conn);
    }
}

相关问题