如何将Hamcrest匹配器应用于被测课程的财产?

时间:2015-10-14 10:48:49

标签: java junit hamcrest junit-rule

有没有办法构建一个组合的Hamcrest匹配器来测试对象和该对象的属性? - 伪代码:

//index.js
var middlewares = require('./middlewares');
var app = require('./app');

module.exports = app;

//i want to change to this
app.use(middlewares.endusersApi);
app.use(middlewares.endusersWebapp);

//Stuff for creating server and listening...


//middlewares/index.js
var middlewares = {
  endusersApi : require("./apis/endusers"), 
  endusersWebapp : require("./webapps/endusers")
}

module.exports = middlewares;


//middlewares/apis/endusers.js
//TODO


//middlewares/webapps/endusers
//TODO

背景:我有一个JUnit测试,它迭代一组动态对象。每个对象在处理时都会抛出异常。收集例外情况。预计测试将以包含这些抛出异常的集合的MultipleFailureException结束:

TODO

1 个答案:

答案 0 :(得分:4)

我认为您可能正在寻找hasPropertyhasPropertyWithValue

请点击此处查看示例:https://theholyjava.wordpress.com/2011/10/15/hasproperty-the-hidden-gem-of-hamcrest-and-assertthat/

我之前使用过的另一个例子;在这里,我们检查是否有Quote方法getModels()返回PhoneModel的集合,集合中的一个项目的属性makeId等于LG_ID和{ {1}}等于NEXUS_4_ID。

modelId

为了实现这一点,hamcrest依赖于您采用JavaBean约定。