我想了解为什么在尝试如下测试时没有创建内部bean:
RunWith(SpringRunner.class)
@SpringBootTest(classes=MyTest.class)
public class MyTest {
@SpyBean A a;
@Test
public void myTest() {
assertTrue(a.some());
}
@Component
class A {
private B b;
A(B dependency) {
this.b = dependency;
}
boolean some() {
return b.value();
}
}
@Configuration
class B {
boolean value() { return true; }
}
}
错误:没有类型为“com.example.MyTest$B”的合格 Bean可用:预计至少有 1 个符合自动连线候选条件的 Bean。依赖项注释:
尽管用@Configuration注释了内部类,但在测试方法时,它并没有创建bean。
请注意,当我像下面这样添加时,它是有效的。b级,我的测试。A.class})
使用@MockBean。并在@Test中添加行为:
@SpringBootTest
@AutoConfigureMockMvc
@RunWith(SpringRunner.class)
public abstract class IntegrationTest {
@MockBean
A a;
@Test
public void mySuperTest(){
Mockito.when(a.getById(Mockito.any())).thenReturn(someInstance);
Assert.assertEquals(a.getById("id"), someInstance);
}
}
添加< code > @ context configuration(classes = MyTest。B.class)添加到MyTest类。< br >但是将配置放入测试类并不是最好的主意。最好创建单独的配置类< code>MyTestConfig,它创建测试所需的所有beans,并通过< code > @ context configuration(classes = mytest config . class)在测试类中使用它。
在纯模式下将Quarkus服务从版本 2.5 迁移到 2.6 时,我遇到了以下情况,如下所示: 我们有一个JAR,它包含几个服务使用的遍历对象的定义,其中包含javax.validation中使用的验证消息。约束:在名为ValidationMessages.properties的文件中定义的注释 在版本 2.5 之前,我可以将此 jar 作为服务依赖项的一部分,它执行服务的本机编译,并设法通过上下
我正在使用笔记本中的pyspark,我不处理SparkSession的创建。我需要加载一个jar,其中包含一些在处理rdd时要使用的函数。这是一件你可以很容易地用罐子做的事,但我在我的特殊情况下做不到。有没有办法访问spark scala上下文并调用addJar方法?我尝试使用JavaGateway(sparksession.\u jvm…)但到目前为止还没有成功。有什么想法吗? 谢谢纪尧姆
当我将应用程序作为独立的Java程序运行时,它运行得很好。当我将其作为applet运行时,它会通过以下堆栈跟踪抛出JAXBException。 当我添加jaxb.properties时,我收到以下错误- 我在类路径中添加了以下罐子 - 2.2.2.1 jsr311-api-1.1.1 球衣核心-1.2 泽西-客户端-1.2 导致此错误的原因。我是否缺少任何依赖项。 编辑:我在浏览器和开发环境中使用
所以我有一个项目,在其中我使用Spring boot,并希望利用一个模块系统。我希望模块系统能够动态地重新加载。我让它几乎可以工作,但是@ComponentScan在模块中完全不工作。 有一个模块文件夹,包含启动时加载的jar文件,需要动态卸载、加载和重新加载。 模块通过AnnotationConfigApplicationContext创建,上下文的类加载器设置为核心的类加载器,模块接口中的方法
在上下文参数中加载上下文和在调度程序 Servlet 的初始化参数中加载上下文之间有什么区别? 相对 我的理解是context-参数由上下文侦听器加载,应该只包含中间层bean。Dispatcher Servlet在其init方法中应该加载web层bean。这种理解正确吗?为什么我们分别加载两个东西?