我有一个路径,它只会获取文件并将其上传到blob容器。有人能帮助我用不同的方法为这个路径编写单元测试吗?
from("direct:uploadFileToBlob")
.routeId("uploadFile")
.setHeader("CamelAzureStorageBlobSourceBlobAccountName",constant(storageAccountName))
.log(LoggingLevel.INFO,"Connecting To Container Name: ${header.CamelAzureStorageBlobContainerName}")
.log(LoggingLevel.INFO,"Connecting To Account Name: ${header.CamelAzureStorageBlobSourceBlobAccountName}")
.toD("azure-storage-blob://${header.CamelAzureStorageBlobSourceBlobAccountName}/${header.CamelAzureStorageBlobContainerName}?blobName=${header.CamelFileName}&operation=uploadBlockBlob&serviceClient=#serviceClient")
.log(LoggingLevel.INFO,"${header.CamelFileName} Uploaded to ${header.CamelAzureStorageBlobContainerName} Container Successfully")
.end();
1条答案
按热度按时间k2fxgqgv1#
你已经在你的另一个问题中得到了一些答案。甚至在那里添加了一些代码示例来帮助测试文件的路径,尽管使用了更通用的CamelTestSupport而不是Spring注解。
重点测试路由逻辑,而不是camel组件或外部服务
编写camel单元测试时,需要了解的关键一点是,您应该专注于测试路由逻辑,而不是camel组件。维护camel的人员已经为camel及其大多数可用组件编写了大量单元测试。
为了避免单元测试过于复杂,了解不同级别的测试及其范围和目的是很有好处的。
测试级别
1.单元测试
1.集成测试
1.系统测试
1.验收测试
你可以从各种在线文章以及维基百科中找到更多关于它们的信息。
测试azure-storage-blob路由
当涉及到只将文件发送到blob存储或类似的路由时,通常没有太多的业务逻辑需要测试。您应该测试的是
azure-storage-blob
端点是否实际接收到文件。此外,您可能有业务需求要求您在发送之前验证文件(即内容是否有效,文件/blob名称是否遵循所需的命名约定等)。1.测试azure-storage-blob端点是否接收文件
1.测试azure-storage-blob端点是否接收到有效数据。
由于您的路线具有一些依赖性,如标题:
"你可以试试"
1.如果缺少这些头中任何一个,路由将记录错误或抛出适当的异常。
对于这些测试,您可以使用adviceWith和weave来替换使用weaveByURI或weaveByID和
replace
的azure-storage-blob端点。示例
这些测试只需要对您的实际路由进行最少的修改,因为它们只是测试在提供特定输入的情况下,路由何时产生预期的输出。