我发现可以使用以下方法模拟JSONWebToken
和SecurityIdentity
:
@InjectMock
SecurityIdentity identity;
@InjectMock
JsonWebToken token;
它工作得很好,但当我尝试运行集成测试时,授权服务器仍然需要启动并运行。否则,Quarkus无法连接到它。
我试图禁用OIDC扩展(quarkus.OIDC.enabled=false
),但是代码当然不能编译(endpoint不能识别依赖项)。
那么,在运行集成测试时,哪一种方法是跳过OIDC连接的最佳方法呢?
最好的,
如何模拟集成测试所需的许多依赖关系? 我使用Mockito进行纯单元测试。在这种情况下,Pure意味着测试一个类,嘲笑它的所有依赖关系。漂亮。 现在是集成测试。假设在这种情况下,集成测试将测试以下内容: 消息被放入队列 我们也可以说,在第2步中发生的处理是严肃的事情。它依赖于大量的数据库交互、多种外部服务、文件系统,以及各种各样的东西。流还会引发很多副作用,所以我不能简单地确保响应是正确的——我需
我们有一些传统的laravel项目,它们在类中使用正面。 我们最近的项目使用了底层laravel类的依赖注入,facades所代表的类正如Taylor Otwell自己所暗示的那样。(我们对每个类使用构造函数注入,但为了保持示例简短,这里我使用方法注入并使用单个类。) 我知道外表是可以被嘲笑的 这对单元测试很有效。我试图理解的问题是,这些门面是否被“全球”嘲笑。 例如,让我们假设我正在编写一个集成
已删除MyTestConfig.class,但问题仍然相同。即使我使用@SpringBootTest(classes={Application.Class,MyProblematicServiceImpl.Class}),它仍然在自动连线的地方返回模拟对象。MyProblematicServiceImpl是用@Service注释的空类。
在用注释并使用)运行的Spring启动集成测试中,我可以通过 restTemplate和将真正的http post调用放到我的rest控制器。 这工作正常,就在控制器的末端 -
我有一个Quarkus项目,我将大部分业务逻辑放在服务中,也就是使用@ApplicationScoped注释的可注入bean中,所有CRUD操作都在其中进行。在JAX-RS资源文件本身中,大部分逻辑只是验证,通常使用整个验证bean。这意味着我们需要在测试资源时模拟注入的服务,以防止单元测试成为本质上的集成测试。我们这样做有这样一个结构(示例项目); 文件模拟欢迎服务。java又是这样的: 我们的