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控制器类。尝试进行单元测试/模拟以发送消息。也被称为回归测试,请非常具体,对单元测试来说是相当新的。让我的类在testing folder.Thats下完成我得到的所有东西。
发布于 2017-04-03 21:35:39
我是您上面提到的SparkPost java库的作者/维护者。
上面显示的用例是SparkPost库的“最简单”用法。对于像您这样的代码,人们通常使用"sendMessage(...)“创建一个接口您已定义的函数。当单元测试有spring (或测试)时,注入类的“存根”版本,而不是生产版本。但在生产或集成加载中,您会看到上面显示的内容。
如果您真的想加载SparkPost库,有几种方法可以针对第三方库进行测试。我做到这一点的一种方法是使用JMock对库进行测试。或者,您可以在客户端的具体实例上设置存根IRestConnection (这是一个更高级的解决方案)。
根据你的需要,我认为上面的第一个建议是你最好的选择,并且在你使用其他第三方库时也是很常见的。
"App“目录中的文件是基本的示例用法/集成示例。欢迎在此项目中添加用于添加演示应用程序单元测试的问题:https://github.com/SparkPost/java-sparkpost
"Lib“中的文件是实际的SparkPost库。
你可以在这里找到现有的库单元测试,它们可能会帮助你了解它是如何完成的。本质上,"IRestConnection“有一个存根实现。Here是一个示例,其中StubRestConnection是在中创建的,而不是默认的真实RestConnection。
我希望这能帮上忙。
https://stackoverflow.com/questions/42905933
复制相似问题