【问题标题】:Grails: NPE in Unit TestGrails:单元测试中的 NPE
【发布时间】:2012-10-25 07:29:48
【问题描述】:

我正在为我的域类编写单元测试,但是当我尝试运行以下测试时,我得到了 NPE:

def st

void setUp(){
    super.setUp()
    mockForConstraintsTests(Student)        
    st=new Student(firstName:"Feras",lastName:"Ahmad")


}

void testMinSize() {        
    st.firstName="J"
    assertFalse st.validate();              
}

我在 testMinSize 方法的第一行得到了 NPE。那有什么问题?我认为在每次测试之前都会调用 setUp 方法。这是真的吗?

谢谢,

【问题讨论】:

  • 您是否尝试过添加调试点以查看在哪一行出现错误?

标签: unit-testing grails junit grails-2.0


【解决方案1】:

添加@Mock(学生)

在您的测试类的顶部

【讨论】:

  • 如果我添加 @Mock 会做什么?
  • 我看到您在调用 setUp() 时遇到错误。只需在 setUp() 方法上添加 @Before 并删除 super.setUp() 行。
  • 还要确保在 Test 类上方有 @TestFor 注释
【解决方案2】:

也许你可以试试@Before 注释

@Before
void setUp(){
    super.setUp()
    print "I'm there"
    mockForConstraintsTests(Student)        
    st=new Student(firstName:"Feras",lastName:"Ahmad")
}

documentation 有时放注释,有时不放。也许这取决于 grails/JUnit 版本。

【讨论】:

  • 我得到了 groovy.lang.MissingMethodException:没有方法签名:student.domain.StudentTests.setUp() 适用于参数类型:()
猜你喜欢
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多