将属性注入集成测试Grails 3

时间:2016-03-22 13:16:22

标签: grails spock

如何将applicaiton.yml文件中的属性注入grails 3.0中的集成测试?

例如:我在我的applicaiton.yml中有这个属性

----
testing:
    defaults:
        startUrl: 'http://localhost:8080/'
----

在我的Integration Spock测试中,我有以下代码:

class WebpageRolesTestSpec extends Specification {

    def grailsApplication
    String LOGIN_URL = grailsApplication.config.getProperty('testing.defaults.startUrl')

    void "test login screen prompt"() {
         expect:
         LOGIN_URL == 'http://localhost:8080/'
    }
}

我得到的异常是:无法在null对象上获取属性'config'

2 个答案:

答案 0 :(得分:1)

你可以使用持有人:

import grails.util.Holders
...
LOGIN_URL = Holders.config.testing.defaults.startUrl
...

答案 1 :(得分:1)

以下测试对我来说,在Grails 3.1.1中,我想你需要一个干净的应用程序。

CvMat* projMatr1;
CvMat* projMatr2;
CvMat* projPoints1;
CvMat* projPoints2;
CvMat* points4D;
int N = 2;

projMatr1 = cvCreateMat(3, 4, CV_64FC1);
projMatr2 = cvCreateMat(3, 4, CV_64FC1);
projPoints1 = cvCreateMat(2, N, CV_64FC1);
projPoints2 = cvCreateMat(2, N, CV_64FC1);
points4D = cvCreateMat(4, N, CV_64FC1);
// I fill the matrices with the opencv function cvSet2D()
cvTriangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2, points4D);