我想为我的应用程序编写单元测试,模拟复制过程中的冲突.有没有办法只使用一个CouchDB数据库和服务器来模拟冲突?
我假设您想要获取包含数据库冲突的文档,而不是409冲突响应?
因此,使用已知的_id在数据库中创建文档:
$ curl http://localhost:5984/scratch/foo -X PUT -H "Content-Type: application/json" -d '{}'
{"ok":true,"id":"foo","rev":"1-967a00dff5e02add41819138abb3284d"}
Run Code Online (Sandbox Code Playgroud)
然后使用与all_or_nothing批量文档API:true选项更新与故意损坏或没有_rev相同的文档,添加好措施一些不同的文档属性:
$ curl http://localhost:5984/scratch/_bulk_docs -X POST -H "Content-Type: application/json" -d '{"all_or_nothing": true, "docs": [{"_id": "foo", "abc": 123}]}'
[{"id":"foo","rev":"1-15c813a2b4b312c6915821b01a1986c5"}]
Run Code Online (Sandbox Code Playgroud)
然后,您应该在文档中发生冲突:
$ curl http://localhost:5984/scratch/foo?conflicts=true
{"_id":"foo","_rev":"1-967a00dff5e02add41819138abb3284d","_conflicts":["1-15c813a2b4b312c6915821b01a1986c5"]}
Run Code Online (Sandbox Code Playgroud)
您还可以使用CouchDB提交者Randall Leeds?new_edits=false所描述的执行常规查询.
$ curl http://localhost:5984/scratch?new_edits=false -X POST -H "Content-Type: application/json" -d '{"_id": "foo", "abc": 123}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
587 次 |
| 最近记录: |