gpt4 book ai didi

unit-testing - 如何对具有关系映射的 grails 域类进行单元测试?

转载 作者:行者123 更新时间:2023-12-01 04:05:24 25 4
gpt4 key购买 nike

我的测试输出给出 com.example.book.Book : null .当我调试测试时,b对象是用 "MyBook" 创建的作为其 name .但由于它有一个静态映射 belongsTo ,测试失败。我如何使这项工作。当我评论 belongsTo在Books.groovy中映射,测试通过。那么我如何使用映射测试域类。我应该实例化一个 Library对象并添加 Book反对吗?但这并不能像在单元测试中那样孤立地测试域类,是吗?

下面是我的代码。

域:

//Book.groovy
package com.example.book

class Book {
static constraint = {
name blank: false, size: 2..255, unique: true
}
static belongsTo = [lib: Library]
String name
}

//Library.groovy
package com.example.library

class Library {
static hasMany = [book: Book, branch: user: User]
static constraints = {
name blank: false
place blank: false
}
String name
String place
}

单元测试:
//BookUnitTests.groovy
package com.example.book

import grails.test.*

class BookUnitTests extends GrailsUnitTestCase {
protected void setUp() {
super.setUp()
mockForConstraintsTests(Book)
}

protected void tearDown() {
super.tearDown()
}

void testPass() {
def b = new Book(name: "MyBook")
assert b.validate()
}
}

测试输出:
Failure:  testPass(com.example.book.BookUnitTests)
| Assertion failed:

assert b.validate()
| |
| false
com.example.book.Book : null

at com.example.book.BookUnitTests.testPass(BookUnitTests.groovy:17)

谢谢。

最佳答案

是的,如果没有图书馆,您的这种设置方式就不会存在书籍。您必须创建一个图书馆并将书籍分配给它。

是否使用belongsTo有意义取决于您的要求。您真的需要保存图书馆并因此保存所有书籍吗?

关于unit-testing - 如何对具有关系映射的 grails 域类进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9823650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com