我们有一些需要版本控制的业务需求。为此,我们选择使用 MarkLogic 库服务。我们在使用 XRAY 测试代码和使用事务时遇到问题。
我们的测试如下:
declare function should-save-with-version-when-releasing() {
declare option xdmp:transaction-mode "update";
let $uri := '/some-document-uri.xml'
let $document := fn:doc($uri)
let $pre-release-version := c:get-latest-version($uri)
let $post-release-version := c:get-latest-version($uri)
let $result := mut:release($document) (:this should version up:)
return (assert:not-empty($pre-release-version),
assert:not-empty($result),
assert:not-equal($pre-release-version,$post-release-version),
xdmp:rollback())
无论如何,测试都会通过,事实证明 ML 回滚会破坏所有变量。
我们如何使用事务对其进行测试?
非常感谢任何帮助,
我是