我正在使用XML MarkupBuilder生成XML文件
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.MarkupBuilder
import org.custommonkey.xmlunit.*
....
def xmlObj = new StringWriter()
def xml = new MarkupBuilder(xmlObj)
xml.book("id":21){
name('bookname')
}
Run Code Online (Sandbox Code Playgroud)
我得到了输出:
<book id='21'>
<name>bookname</name>
</book>
Run Code Online (Sandbox Code Playgroud)
如何让它生成根xml标签?
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud) 我在我的域中使用已分配的ID
class Book {
Integer id
String name
static mapping = {
id generator: 'assigned'
}
}
Run Code Online (Sandbox Code Playgroud)
所以要添加一本新书:
def book = new Book([name: "The Adventures of Huckleberry Finn"])
book.id = 123
book.save(flush: true)
Run Code Online (Sandbox Code Playgroud)
一切都很完美,问题出在我的单元测试中
首先我只能嘲笑1域类,其次,我不能在单元测试使用.save(),所以我唯一的选择(据我所知)是使用mockDomain如下:
mockDomain(Book, [ [id: 123, name: "The Adventures of Huckleberry Finn"] ])
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它将在没有"id generator:'assigned'"的普通域中工作
有任何想法吗?我读到在集成测试中我不会遇到这个问题,这只是单元测试中的问题谢谢