我正在努力将测试覆盖率添加到我正在使用Jest的Node项目中.我正在测试的代码是在promises中抛出错误,导致UnhandledPromiseRejectionWarning消息被记录到控制台.
在写测试,我可以很容易地找出这些问题并加以解决,但这些警告实际上并没有造成玩笑标记为未能通过测试,所以我们的CI将不能抓住它.我四处寻找任何建议,但没有找到太多建议.
我确实在Node的文档中发现你可以捕获这些警告并处理它们......
process.on('unhandledRejection', (error) => {
throw error; // Or whatever you like...
});
Run Code Online (Sandbox Code Playgroud)
因此,将此代码添加到我的测试用例中似乎非常简单.毕竟,Error测试中的抛出应该导致测试失败......
describe('...', () => {
it('...', () => {
process.on('uncaughtRejection', (error) => {
throw error;
});
// the rest of my test goes here
});
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,我看到的行为是错误确实被抛出,但是Jest没有捕获它并且未通过测试.相反,Jest崩溃时出现此错误,测试不会继续运行.这不是真正可取的,似乎是不正确的行为.
在uncaughtRejection处理程序之外抛出错误按预期工作:Jest记录抛出的错误并使测试失败,但不会崩溃.(即测试观察者一直在观看和运行测试)
大家.我几个月来一直在Mac上尝试Cocoa和Objective-C编程,我想开始开发管理大量数据的应用程序.问题是,我不确定从哪里开始使用数据库.
我在SQLite的Java编程方面有很好的背景.我已经阅读了一些关于CoreData的内容,但我还没有找到任何好的资源来手动连接到数据库.我正在寻找建议.
我应该尝试使用CoreData吗?如果有的话,是否有人可以为该语言的新手推荐一个好的教程?或者,我应该尝试以某种方式手动连接和查询SQLite数据库?
我一直在Cocoa/Objective-C中为一个练习项目编写一个简单的文本编辑器,我遇到了一个我从未预料到的错误.
我有一个NSString用于我的文件内容以及一个NSString用于它的路径.当我尝试将内容写入文件时,我使用以下方法:
[FileContents writeToFile: CurrentFileName
atomically: NO
encoding: NSStringEncoding /* Error occurs on this line */
error: nil];
Run Code Online (Sandbox Code Playgroud)
我今天多次使用这种方法而没有错误,我收到一个错误:
'NSStringEncoding'之前的预期表达式
cocoa ×2
objective-c ×2
database ×1
javascript ×1
jestjs ×1
macos ×1
node.js ×1
nsstring ×1
sqlite ×1
unit-testing ×1