0
简单服务类AnalyzerService调用存储过程在数据库中。 尝试运行集成测试以确保服务调用存储过程并在分析器类对其进行操作后返回正确的数据。但是,获取“无法在空对象上调用方法calculateEstimateNumberOfPositions()”的可怕异常“。为什么服务对象为空?我错过了什么?Grails集成测试无法在空服务对象上调用方法?
谢谢!
package foobar.analyze
import static org.junit.Assert.*
import org.junit.*
import foobar.analyze.AnalyzerService
//@TestFor(AnalyzerService)
class AnalyzerServiceTests {
def AnalyzerService service
def dataSource
@Before
void setUp() { }
@After
void tearDown() { }
@Test
void testcalculateEstimateNumberOfPositions() {
String positionName = "crew"
String city = "Great Neck"
String state = "NY"
int numberOfPositionsSought = 100
int expectedNumberOfPositionsEstimate = 100
def numberOfPositionsEstimate = service.calculateEstimateNumberOfPositions(positionName, city, state, numberOfPositionsSought)
fail (numberOfPositionsEstimate != expectedNumberOfPositionsEstimate)
}
}
在这种情况下,你说得对,这个约定很重要,但是一般性的陈述“任何不符合约定都会让你处于狂野状态”太强大了。有很多情况下,如果您想在标准方法不适用于您的情况下遵守惯例,那么很多情况下。只是不在这种情况下:) –
@BurtBeckwith正确地说,谢谢。我明白这一点,因为我正在养育我的10个月大,而我只是通过你的书的一半。 :P我会将它更新为合理的。 – dmahapatro
谢谢!是的,在我们的其他项目中,我们正在单元测试中使用服务。说到10MO,我只是在相同的时间后回来休产假 - 试图围绕Grails重新包装我的头。 – Alexx