【问题标题】:Unit testing for SparkPostSparkPost 的单元测试
【发布时间】:2023-03-05 01:27:02
【问题描述】:
package johnny.me.controller;

import com.sparkpost.Client;
import com.sparkpost.model.responses.Response;
import com.sparkpost.exception.SparkPostException;
import org.springframework.stereotype.Service;

/**
* Sparkpost class sends the email using
* the sendmessage methood
*/

@服务 公共类 SparkPostController {

    String API_KEY = "API KEY";
         Client client = new Client(API_KEY);
         private static String from_email = "me@yahoo.com";
         private static String subject = "Time equation";
         private static String text = "";

    public Response sendMessage(String recipient, String message) throws SparkPostException {
         return client.sendMessage(from_email,recipient,subject,
                 text,message);
    }

}

这是我的 sparkpost 控制器类。尝试进行单元测试/模拟以发送消息。也称为回归测试请对单元测试非常具体。把我的课放在测试文件夹下。这就是我所得到的。

【问题讨论】:

    标签: java unit-testing regression-testing sparkpost


    【解决方案1】:

    我是你上面提到的 SparkPost java 库的作者/维护者。

    上面显示的用例是 SparkPost 库的“最简单”用法。对于像您这样的代码,人们通常使用您定义的“sendMessage(...)”函数创建一个接口。当单元测试有弹簧(或测试)注入你的“存根”版本的类而不是生产版本。但是在生产或集成负载中,您在上面显示的是。

    如果您真的想加载 SparkPost 库,有几种方法可以针对第三方库进行测试。我这样做的一种方法是使用 JMock 对库进行测试。或者,您可以在客户端具体实例上设置 Stub IRestConnection(这是一个更高级的解决方案)。

    根据您的需要,我认为上面的第一个建议是您最好的选择,并且在您使用其他 3rd 方库时也很常见。

    “App”目录中的文件是必不可少的示例用法/集成示例。随意向此项目添加一个问题以添加演示应用单元测试: https://github.com/SparkPost/java-sparkpost

    “Lib”中的文件是实际的 SparkPost 库。

    您可以在此处找到现有的库单元测试,这可以帮助您了解它是如何在此处完成的。本质上,“IRestConnection”有一个存根实现。 Here 是在使用中创建 StubRestConnection 而不是默认的 real RestConnection 的示例。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多