首页 / JAVA / Java服务器端单元测试GCM的结果
Java服务器端单元测试GCM的结果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java服务器端单元测试GCM的结果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1780字,纯文字阅读大概需要3分钟。
内容图文
![Java服务器端单元测试GCM的结果](/upload/InfoBanner/zyjiaocheng/676/60d0d6f1c8d54cbeb78824004641e98a.jpg)
我正在使用GCM(Google云消息传递)来向Android应用发送通知.我的服务器使用的是Google提供的gcm-server.jar,我正在使用documentation.我可以将通知发送到设备,而不会出现问题.
现在,我尝试基于从PushNotificationDaoGcmImpl的私有方法sendNotificationToServer返回的Result(source)进行业务逻辑的单元测试.
我知道Result不能被嘲笑,因为它是最后一个类,而且由于没有公共构造函数,因此简单地将其实例化为新Result()将无法工作.在com.google.android.gcm.server包之外,无法访问Result内部Builder类.所以我不能那样建立对象.
我找不到创建从Sender(source)返回的结果的好方法.
我的问题是我将如何进行单元测试,使PushNotificationDaoGcmImpl根据Result处理某些条件?
public class PushNotificationDaoGcmImpl{
//method I'm trying to test
public void sendPushNotification(){
// builds message to send
Result result = this.sendNotificationToServer(gcmMessage, deviceToken)
//handle result's error conditions
}
//method call I'm trying to mock
private Result sendNotificationToServer(Message gcmMessage, String deviceToken){
return gcmSender.send(gcmMessage, deviceToken, 1);
}
}
//test snipet
@Test
public void testSendNotificationToServer () throws Exception {
Result result = new Result();
PushNotificationMessage message = new PushNotificationMessage("123", "Test", "deviceToken", "Android");
//Having issue with how to handle Result here
doReturn(result).when(gcmPushNotificationDaoSpy).sendNotificationToServer(any(Message.class), anyString());
PushNotificationResult result = gcmPushNotificationDaoSpy.sendPushNotification(message);
//verify business logic was correct based on Result
}
解决方法:
您还可以在com.google.android.gcm.server包中创建MockResult类,该类可让您访问Builder.
package com.google.android.gcm.server;
class MockResult {
public static Result mockResult(...) {
// Use Builder here to construct Result
}
}
对我来说,这比处理反射要容易管理.
内容总结
以上是互联网集市为您收集整理的Java服务器端单元测试GCM的结果全部内容,希望文章能够帮你解决Java服务器端单元测试GCM的结果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。