我正在使用grails 1.3.7。
在为 Controller 编写单元测试时,由于在 Controller 中的操作使用动态查找程序,例如“findByName('ABC')”,因此出现错误。
我知道我也需要模拟动态查找器,但我尝试了一下,但不幸的是没有解决。
我要求您提供我需要使用的确切模拟片段,以帮助我。
另外,对于所有这些 mock 的事物,请提出一些具有所有这些内容的文档URL。
此外,在我的grails应用程序中,我将三个域之间的关联称为“hasMany和belongsTo”。因此,在为 Controller 编写单元测试时,请提出我需要如何模拟这些域类。
请我尽快答复所有人,因为我对此有疑问。
提前致谢,
并等待积极的答案。
谢谢
最佳答案
如果name
是域的属性,则当您mock the domain时,动态查找器将被“自动”模拟。您应该能够做到:
mockDomain(YourDomain)
此时,您将只返回null,因此,如果您希望该查询返回它们,请创建一些实例:
YourDomain instance = new YourDomain(name: 'foo')
mockDomain(YourDomain, [instance])
那么您可以执行以下操作:
assert instance == YourDomain.findByName('foo')
关于unit-testing - 在Grails单元测试中模拟动态查找器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15518931/