我done()在 Jest 测试中与一位同事发生争执。
他在 JavaScript 方面的经验比我多几个数量级,我是在async/await被普遍接受之后加入的,加上来自 .NET 环境,所以我已经习惯了。
我写我的测试是这样的:
it("should return 200 OK for POST method", async () => {
await request(app).post("SOMEENDPOINT")
.attach("file", "file")
.expect(200);
});
Run Code Online (Sandbox Code Playgroud)
他更习惯于承诺,所以会像这样编写他的测试:
it("should return 200 OK for POST method", (done) => {
request(app).post("SOMEENDPOINT")
.attach("file", "file")
.expect(200, done);
});
Run Code Online (Sandbox Code Playgroud)
他对我推送到async/ 没问题await,但坚持我必须包含done,这样我要么做他的版本修改版本:
it("should return 200 OK for POST method", async (done) => {
await request(app).post("SOMEENDPOINT")
.attach("file", "file")
.expect(200, done);
});
Run Code Online (Sandbox Code Playgroud)
或者:
it("should return 200 OK …Run Code Online (Sandbox Code Playgroud) 在遇到一些问题后,我使用Java中的字符串对Postgres执行一些查询,然后我使用了字符串数组,这解决了我现有的问题。
切换后,我现在遇到了一个问题pg_dump,但是没有问题pg_restore。
当我为我的方法提供以下数组时:
[time, ./pg_dump, -U, lehigh, -d, lehigh, -Fc, data/completedDb.dump]
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
pg_dump:命令行参数太多(第一个是“ data / completedDb.dump”)
ProcessBuilder产生以下内容供我执行:
time ./pg_dump -U lehigh -d lehigh -Fc data/completedDb.dump
Run Code Online (Sandbox Code Playgroud)
当我在命令行上添加输出箭头并删除数据文件夹时,它工作正常。
time ./pg_dump -U lehigh -d lehigh -Fc > completedDb.dump
Run Code Online (Sandbox Code Playgroud)
我正在使用Eclipse在Postgres数据库上的Java中通过eclipse运行此命令:
Runtime.getRuntime().exec();
Run Code Online (Sandbox Code Playgroud)
我尝试使用,Process.start()但遇到了相同的错误,所以我对自己做错的事完全感到震惊。
在进行此更改之前,pg_dump已作为单个字符串正确执行。我不想回到那种方法,因为我想保持一致性,但是我也想弄清楚我在做什么错。
async-await ×1
java ×1
javascript ×1
jestjs ×1
node.js ×1
pg-dump ×1
postgresql ×1
supertest ×1