为什么Spring Boot不会在服务类中测试加载@Value
属性?我有一个带有此属性的服务类。
@Value("${azure.storage.connection-string}")
private String connectionString;
我正在使用JUnit4。运行此测试时,connectionString属性为null。
@TestPropertySource(locations="classpath:/application-test.yml")
@Slf4j
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles("test")
public class BlobServiceTest {
@Autowired
private ObjectMapper objectMapper;
private BlobService blobServiceSpy;
@Before
public void setup() {
blobServiceSpy = Mockito.spy(new BlobService(objectMapper));
}
@Test
public void testGetExampleBlob() {
String stubFileId = UUID.randomUUID().toString();
PdfBlob pdfBlob = null;
try {
pdfBlob = blobServiceSpy.downloadBlobContent(stubFileId);
} catch (JsonProcessingException e) {
log.error("Test failed.", e);
Assert.fail();
}
Assert.assertNotNull("PDF blob was null.", pdfBlob);
}
}
这个问题有一些答案,但很不清楚,答案需要更多信息。
这是可行的,但似乎是一个“黑客”:
public class BlobServiceTest {
@Value("${azure.storage.containerName}")
private String containerName;
@Value("${azure.storage.connection-string}")
private String connectionString;
@Autowired
private ObjectMapper objectMapper;
private BlobService blobServiceSpy;
@Before
public void setup() {
blobServiceSpy = Mockito.spy(new BlobService(objectMapper));
//TODO not sure why, but had to setup connectionString property this way
blobServiceSpy.containerName = this.containerName;
blobServiceSpy.connectionString = this.connectionString;
}
当我创建Spy对象时,为什么SpringBootTest不为我连接这些值?
当您使用new创建BlobService时,spring并不知道它,因此不会注入您的属性。尝试自动连线你的blob服务,然后将其包装在spy中。
我正在尝试使用Mockito在SprinBoot应用程序中进行一些jUnit测试。 现在我的服务有了一些变量,可以从通过注释: 我试图通过像这样使用来测试这个: 但是,该属性不会被填充,并保持为。 这方面有很多TPOIC,但我还没能拼凑出一个解决方案。我看到解决方案建议,但它似乎想做一个集成测试,使服务加速,但由于无法连接到数据库,服务失败了。所以这不是我想要的。 我还看到一些解决方案建议我制作一
我不熟悉单元测试。参考google之后,我创建了一个测试类来测试我的控制器,如下所示: 我有以下控制器和服务类: 当我调试单元测试时,控制器中的p对象为null。我的状态是200,但不是预期的JSON响应 我错过了什么?
我目前正在与CDI Unit合作一个项目,我遇到了一个奇怪的问题。我试图在一个简单的项目中重现它: 我有一个使用CdiRunner运行的测试类(如下所述:http://jglue.org/cdi-unit-user-guide/我的测试类注入了被测试的单元:UUD。这个类扩展了一个超级类“ParentTestClass”,它目前是无用的。 测试课。爪哇: 正如我提到的,父类是空的。 ParentT
本文向大家介绍AngularJS 单元测试服务,包括了AngularJS 单元测试服务的使用技巧和注意事项,需要的朋友参考一下 示例 服务编号 考试 跑!
我在导入一些Android UI测试框架类时遇到了麻烦--我只是不知道哪里出了问题! 这是我的课: 但是由于某种原因,我得到了错误'cannot find symbol activitytestrule'和'cannot find symbol androidjunit4'。我试图导入它们,但找不到。 有人有什么想法吗?
问题内容: 我正在Android Studio中运行单元测试。我有一个使用以下代码加载本机库的Java类 但是当我在目录中测试此类时,我得到 我如何才能找到位于本地的.so库的路径,以便进行无误的单元测试? 注:里面的目录我有3个子目录:,和。其中的每一个都包含正确的.so文件。我正在使用 非实验版本 来构建NDK库。 我不想使用其他第三方测试库,因为我所有其他“纯” java类都可以进行单元测试