gpt4 book ai didi

java - 在内部使用私有(private)支持方法对公共(public)方法进行单元测试?

转载 作者:行者123 更新时间:2023-11-28 21:01:52 24 4
gpt4 key购买 nike

当尝试在我的 JSF 应用程序上执行测试驱动开发时,我很难理解如何使我的类更易于测试和解耦。例如:

@Test
public void testViewDocumentReturnsServletPath(){
DocumentDO doc = new DocumentDO();
doc.setID(7L);
doc.setType(“PDF”);
DocumentHandler dh = new DocumentHandler(doc);
String servletPath = dh.viewDocument();
assertTrue(servletPath, contains(“../../pdf?path=“);
}

如果我删除了 viewDocument() 中的一些支持私有(private)方法,这仅是可测试的(根据我目前的知识),这些私有(private)方法旨在与外部资源(如数据库)进行交互。

如何在内部使用这些支持的私有(private)方法对公共(public) API 进行单元测试?

最佳答案

单元测试通常包括模拟函数所依赖的外部依赖项以获得受控输出。这意味着如果您的私有(private)方法调用 API,您可以使用像 Mockito 这样的框架来强制返回一个特定的值,然后您可以使用该值来确保您的代码以您期望的方式处理该值。例如,在 Mockito 中,这看起来像:

when(someApiCall).thenReturn(someResource);

如果您希望与您正在测试的方法无法控制的数据库或任何其他外部资源进行交互,同样的结构也适用。

关于java - 在内部使用私有(private)支持方法对公共(public)方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56051572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com