fer*_*gjo 3 grails unit-testing constraints mocking
我已经使用手动编写以及Grails为此命令对象生成的单元测试:
package myapp
@grails.validation.Validateable
class SearchCommand {
String basisBuild
String buildToSearch
static constraints = {
basisBuild(blank: false)
}
}
Run Code Online (Sandbox Code Playgroud)
在我的手写单元测试失败之后,我使用了Grails:
create-unit-test myapp.SearchCommand
Run Code Online (Sandbox Code Playgroud)
我填写了单元测试,并做了一个断言,应该通过模拟约束的每个文档:
package myapp
import static org.junit.Assert.*
import grails.test.mixin.*
import grails.test.mixin.support.*
import org.junit.*
@TestMixin(GrailsUnitTestMixin)
class SearchCommandTests {
void setUp() {
mockForConstraintsTests(SearchCommand)
}
void tearDown() {
// Tear down logic here
}
void testSomething() {
SearchCommand commandUnderTest = new SearchCommand()
commandUnderTest.validate(basisBuild: "")
assertEquals "blank", commandUnderTest.errors['basisBuild']
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我会失败?
grails> test-app
| Running 9 unit tests... 9 of 9
| Failure: testSomething(com.siemens.soarian.sf.gap.SearchCommandTests)
| java.lang.AssertionError: expected:<blank> but was:<null>
at org.junit.Assert.fail(Assert.java:93)
Run Code Online (Sandbox Code Playgroud)
我相信我发现grails支持在grails 2.0中单元测试Command对象的方法.您需要使用ControllerUnitTestMixin提供的mockCommandObject.
感谢Erik
http://www.jworks.nl/2012/04/12/testing-command-objects-in-grails-2-0/
| 归档时间: |
|
| 查看次数: |
3964 次 |
| 最近记录: |