org.spockframework:spock-core:0.7-groovy-2.0

Gradle 1.12

Groovy 1.8.6

java

你好,

我正在尝试使用spock和我的java应用程序来运行单元测试并使用gradle构建.

但是,由于我是spock的新手,我不确定如何传递实际参数以获得正确的输出?

这是我想要测试的函数签名,它接受inputStream,char []和String:

public String makeRequest(InputStream keystoreFilename, char[] keystorePassword, String cnn_url) {

...

}

因此,在我的测试规范中,我想将keystore文件作为inputStream传递,其中实际的密钥库位于此处../resources/keystore.bks,以及密钥库的实际密码和Web服务所在的URL.但是,我在尝试运行单元测试时遇到此错误:

groovy.lang.MissingMethodException: No signature of method: com.sunsystem.HttpSnapClient.SnapClientTest.FileInputStream()

我的规格测试如下,但我认为我的方法是错误的.

import spock.lang.Specification;

import java.io.InputStream;

import java.io.FileInputStream;

class SnapClientTest extends Specification {

def 'Connect to https web service'() {

setup:

def snapzClient = new SnapzClient();

def inputStream = FileInputStream("../resources/keystore.bks")

def keystorePwd = "password".toCharArray()

def url = "https://example_webservice.com"

expect: 'success when all correct parameters are used'

snapzClient.makeRequest(A, B, C) == RESULT

where:

A | B | C | RESULT

inputStream | keystorePwd | url | 0

}

}

非常感谢任何建议,

解决方法:

我认为where部分只接受静态或共享字段.否则值必须是硬编码的文字.因此,当我修改类以使参数共享时,它对我有效.请试试这个

import spock.lang.Shared

import spock.lang.Specification

class SnapClientTest extends Specification {

@Shared def inputStream = new FileInputStream("../resources/keystore.bks")

@Shared def keystorePwd = "password".toCharArray()

@Shared def url = "https://example_webservice.com"

def "Connect to https web service"() {

setup:

def snapzClient = new SnapzClient();

expect:

snapzClient.makeRequest(A, B, C) == RESULT

where:

A | B | C | RESULT

inputStream | keystorePwd | url | "0"

}

}

请注意,makeRequest()方法的返回类型是string.所以如果你需要用双引号括起RESULT(“)

标签:java,unit-testing,groovy,spock

来源: https://codeday.me/bug/20190528/1173466.html

java单元测试 规范,java – 在spock单元测试规范中传递实际参数相关推荐

  1. java batch_Java EE 7 Batch中传递属性/参数的2种方式

    java batch 谈到Java EE 7批处理功能,有两种方法可以将属性/参数传递给块和批处理. 本快速指南向您展示了两种方式,在开发批处理Java EE 7方式时可能会经常使用它们. 1.运行前 ...

  2. Java EE 7 Batch中传递属性/参数的2种方式

    对于Java EE 7批处理工具,有两种将属性/参数传递给块和批处理的方法. 本快速指南向您展示了两种方式,在开发批处理Java EE 7方式时可能会经常使用它们. 1.运行前预定义的属性/参数 预定 ...

  3. java 传参字符串数组_JAVA语言之okhttp传递数组参数

    比较以上两种格式,发现格式不对.传给后台时,总是报参数错误的异常. 解决办法:定义一个对象继承自okhttp3.RequestBody public class DefaultRequestBody  ...

  4. js java cookie_JS 打开一个模式窗口,使用Cookie传递一个参数

    页面A,加载后打开一个模式窗口,设置一个参数,然后自己关闭 function fullScreen(){ loadpopup(); var width = screen.width-10; var h ...

  5. java http参数传递_Java在HTTP请求中传递数组参数的方法

    有个功能需要我请求别人提供的接口,该接口的参数是一个多维数组,大致类似这样:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

  6. java.net.url 中文乱码_asp.net URL中包含中文参数造成乱码的解决方法

    asp.net URL中包含中文参数造成乱码的解决方法 更新时间:2010年03月08日 21:44:27   作者: 中文乱码一直以来是WEB开发中比较常见的问题之一,对于初学者来说,各种各样的编码 ...

  7. java 对象protected,Java对象类protected void finalize throws Throwable方法示例

    对象类保护的voidfinalize() throws Throwable此方法在java.lang.Object.finalize()中可用. 当不再有引用保留时,垃圾回收器将调用此方法. 此方法对 ...

  8. 阿里巴巴编码规范 java认证记录

    记录一下个人的考试题目,答案没有全对,提供题目给大家参考交流,如有发现错误,留言我改正即可,谢谢! 我始终相信互相学习才是进步的捷径! 阿里巴巴开发规范1.4版点击下载 单选1.KV结构的集合,在处理 ...

  9. Java开发规范(1)项目规范

    本篇规范基于阿里巴巴.华为的开发手册,添加了我们团队的开发风格规范,补充了一些细节.感谢前人的经验和付出,让我们可以有机会站在巨人的肩膀上眺望星辰大海. 规范不是为了约束和禁锢大家的创造力,而是为了帮 ...

最新文章

  1. [Android Pro] 有关Broadcast作为内部类时注册的一些问题
  2. CSS实现 全兼容的多列均匀布局问题
  3. HDU 1618 Oulipo KMP解决问题的方法
  4. 信息系统项目管理师 案例1
  5. SSM中 出现错误 Could not open ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml]
  6. 之前是围棋下不过机器人,这回连打字也不行
  7. GitHub:攻击者正在利用被盗 OAuth 令牌攻击数十家组织机构
  8. 百度之星2018资格赛t6三原色图(MST minimum spanning tree)
  9. C# typeof()实例详解
  10. 游戏启动是html,陈书艺:推动游戏前行 开启HTML5游戏之门
  11. mysql的启动脚本编写_老鸟带你开发专业规范的MySQL启动脚本
  12. 卡方检验的统计量推导_卡方检验如何计算?
  13. 阿里云移动测试平台使用教程
  14. MBT测试实例:做个“机器人”,使其随机、持续的对“web页面”做交互性测试(二)涉及工具
  15. phpcms选择文件无法加载插件怎么办_浏览器显示无法加载插件怎么解决
  16. 内网ip映射到外网软件80全端口映射
  17. 互联网摸鱼日报(2023-03-03)
  18. 工业自动化程序计算机英语,工业自动化常用英语
  19. PCB设计师需要知道的前5个PCB设计指南-PCB布线布局导致的焊接、装配问题
  20. 一文了解72名图灵奖获得者的成就

热门文章

  1. 线程sleep 和wait 的区别
  2. 在springboot中配置redis集群
  3. 双11营业额实时数据_【好消息!】淘宝客也有自己的双11实时大屏啦
  4. 20岁就业难、30岁被裁员、35岁瓶颈期……打工人真的没有退路了吗?
  5. python歌词解析_python 将歌词解析封装成类,要求:提供一个方法(根据时间返回歌-站长资讯中心...
  6. matlab半波整流怎么做,单相半波整流电路matlab仿真..ppt
  7. pcb可以给用户进程读吗_在职研究生:不用考试就可以读吗?
  8. Android 10 Unable to open '/storage/emulated/0/: Permission denied
  9. python九九乘法口诀表-使用Python打印九九乘法口诀表
  10. SAP S/4 采购订单审批策略无效问题