我有一堆bean的Spring boot应用程序。他们的数量一天比一天增加。所以我总是需要模拟新的bean,否则测试就会失败。所以,问题很简单:如何强制Spring Boot测试只使用应用程序上下文中的几个特定bean而不是全部?
所以,我想出了:您需要在测试包中创建类,并指向测试类以从那里运行spring,并且您必须定义需要扫描组件的包。为此,请使用前缀ScanBasePackages
或批注@ComponentScan
(“PackageForScan”)
@SpringBootApplication(scanBasePackages = {"com.domain.folder1.package1","com.domain.folder1.package2"})
public static class CustomApplicationRunner {
public static void main(String[] args) {
SpringApplication.run(CustomApplicationRunner.class, args);
}
}
在测试类中,您必须将该类作为运行应用程序的主要类。
@SpringBootTest(classes = MyTestClass.CustomApplicationRunner.class)
@RunWith(SpringRunner.class)
public class MyTestClass {//tests}
这就是您如何包括或排除(使用注释@ComponentScan)任何包以添加到应用程序上下文的方法。
我有一个Spring应用程序,具有不同的配置文件,例如“开发”和“生产”。我用ArchUnit测试架构。我有像这样的测试 我的包中的类有不同的配置文件。我怎样才能只包含带有Spring概要文件“Production”的类?
我正在寻找一种方法,使一个不和谐的机器人反应或答复,只有某些用户。它可以通过角色或ID选择用户,但我似乎无法让它工作。这就是我尝试过的: 如果有帮助的话,我正在用Discord JS编写代码。这是整个索引。js文件: 文件运行正常,机器人联机,然后打印“就绪!”然而,对于控制台来说,代码的其余部分似乎不起作用。
我正在使用TestNG进行单元测试。我使用@BeforeMethod保存记录,然后执行更新、搜索、删除测试。 我的测试类如下所示:
我正在使用TestNG数据提供程序读取数据池。xls文件,在名为ReadData的类中包含1017个测试用例和214列。 然后,我将214个String参数传递到名为Enterprise Data的单独类中的@Test注释中。 我在@Test中创建了一个for循环,只执行ceratin迭代的操作(比如1-10),它总共只输入10个测试用例。我的问题是,在运行结束时,它仍然显示“Total test
我想要“常规”测试步骤来破坏SoapUI测试用例,同时应该允许测试步骤的一个不同子集失败。 我有一个SoapUI测试用例,它执行一个相当复杂的功能测试,其中一些可选的细节由额外的JDBC测试步骤检查。由于这些细节是“可选的”,所以即使一个或多个JDBC测试失败,测试用例也不应该失败(即它应该变成绿色)。 如果要求允许测试用例中的所有测试步骤失败,我可以简单地切换测试用例行为: 打开TestCase
这将永远不会缓存私有方法响应