我正在用frisby创建HTTP测试.js它可以在jasmine.js之上工作。
我还必须创建一些mongoDB对象进行测试。问题是当我想清理这些数据库对象时。当其中一个期望失败时,我想拦截它并调用我自己的清理函数。这意味着在每次失败的测试之后,我将不能从数据库中删除测试对象。
jasmine中的后每个函数不能正常工作,jasmine还不支持后所有或前所有。这就是为什么我今天进行测试的原因。
it("testing userform get with correct userID and expect correct return", function() {
var innerUserId = userID;
frisby.create('Should retrieve correct userform and return 200 when using a valid userID')
.get(url.urlify('/api/userform', {id: innerUserId}))
.expectStatus(200)
.afterJSON(function(userform){
// If any of these fail, the after function wont run.
// I want to intercept the error so that I can make sure that the cleanUp function is called
// afterEach does not work. I have tried with done()
var useridJSON = userform.UserId.valueOf();
var firstnameJSON = userform.firstname.valueOf();
var surnameJSON = userform.surname.valueOf();
expect(firstnameJSON).toMatch(testUser.firstName);
expect(surnameJSON).toMatch(testUser.surname);
expect(useridJSON).toMatch(innerUserId);
})
.after(function(){
cleanUp(innerUserId);
})
.toss();
});
我想知道是否有办法在frisby或jasmine中拦截“expect”的错误,这样我就可以在退出之前调用我自己的清理函数。
完整的例子在这里
至于“退出前”,这个怎么样:
process.on('uncaughtException', function(err) {
console.error(' Caught exception: ' + err);
});
这个问题的最快解决方案是将错误代码包装在try-catch中。这是因为如果发生javascript错误,jasmine将不会继续运行断言。这与断言错误不同。如果出现断言错误,jasmine和frisby将继续测试所有其他断言,然后执行“after”函数。
.afterJSON(function(userform){
try {
var useridJSON = userform.UserId.valueOf();
var firstnameJSON = userform.firstname.valueOf();
var surnameJSON = userform.surname.valueOf();
catch(e) {
cleanUp(innerUserId);
// Can do a throw(e.message); here aswell
}
expect(firstnameJSON).toMatch(testUser.firstName);
expect(surnameJSON).toMatch(testUser.surname);
expect(useridJSON).toMatch(innerUserId);
})
这不是很好的方法,但很有效。
我最终添加了 throw(e),并将期望放在最终的作用域中。通过这种方式,我让茉莉花呈现测试中发生的所有错误。
我正在开发一个可以在NFC标签上读写的Android应用程序。我在阅读我已经写了东西的标签时没有问题,但是当我使用空白标签时,我很难在十六进制代码中读取标签的 UID。 我正在使用mi的经典标签,我直接在十六进制中使用readlock方法读取UID。奇怪的是,它在调试器模式下运行得很好,我在调试器模式下获取UID。但是当我在没有debuger的情况下尝试时,我得到了以下异常: 下面是我读入标签的方
我有一个通过SOAP-Endpoint发送消息的Camel路由。
我使用的是Spring boot 2.2.9,我在获取401 HTTP错误的入口点时遇到问题,我正在尝试更改响应的行为,就像我们可以使用Spring错误处理程序(ResponseEntityExceptionHandler类)处理其他HTTP错误一样,谢谢
放心,当我们这样做时 抛出的错误总是连续的,也就是说,如果状态代码失败,它不会检查contentType是否是JSON。 此外,抛出的错误始终是,断言错误(预期:200,实际:404)。无法从中了解实际响应是什么,如果启用日志记录,它将打印在标准输出上,但其他任何方式都不可用。 是否有任何方法来构建或设置类似于我们如何实现<code>过滤器 我有一个 rest api 框架,其中大多数验证都是使用
拦截时间 bp GetLocalTime 获取本地时间 bp GetSystemTime 获取系统时间 bp GetFileTime 获取文件时间 bp GetTickCount 获得自系统成功启动以来所经历的毫秒数 bp GetCurrentTime 获取当前时间(16位) bp SetTimer 创建定时器 bp TimerProc 定时器超时回调函数
问题内容: 我看到 一吨 的条目在我的Tomcat日志(样品粘贴下面)。这些在几个月前进行次要版本升级(Spring Security 4.2.4,IIRC)后开始出现在我的日志文件中,因此,这显然是默认情况下启用的Spring新安全功能。这里报告了类似的问题,但是我的问题专门涉及如何在控制器中拦截这些异常。有一个针对此问题的Spring Security错误记录(提供一种处理RequestRej