저는 Groovy와 Grails에 비교적 익숙하며 여유 시간에 시도하고 있습니다. grails run-app,하지만 grails run-war 결과를 사용하여 잘 실행할 수있는 작은 테스트 Grails 응용 프로그램에서 오류가 발생했습니다. grails-app/conf/BootStrip.init 방법에서 , 나는 DefaultGrailsControllerC
ExpandoMetaClass를 사용하여 서비스를 통합 테스트에서 항상 성공으로 만들지 만 실제로 실패한 테스트를 하나 갖고 싶습니다. ExpandoMetaClass의 사용 예 : static {
ExpandoMetaClass someService = new ExpandoMetaClass(Object, false)
someService
통합 테스트에서 외부 서비스에 대한 호출을 모의하려고합니다.이 서비스는 grails 웹 플로우에서 사용됩니다. 서비스는 흐름 또는 대화 범위에 있지 않지만 종속성 삽입을 통해 추가됩니다 (here 참조). 저는 ExpandoMetaClass를 사용하여 metaClass를 대체하여 서비스를 재정의하는 방법을 찾아 냈습니다. 변경 사항은 테스트가 단독으로 실행
Groovy 응용 프로그램에서 메타 클래스를 초기화하려면 해당 초기화를 수행 할 수있는 가장 좋은 위치는 어디입니까? Grails 애플 리케이션에서는 Bootstrap.groovy 파일을 사용했습니다. 임의의 Groovy 앱과 비슷한 것이 있습니까? 편집 : 분명히하기 위해, 주 응용 프로그램을 실행할 때뿐만 아니라 관련 코드의 단위 테스트에서도 호출되도록
Groovy는 다양한 선택을 제공하는 훌륭한 언어입니다. 단위 테스트를 생각해 볼 때 Expando 개체와 클로저를 사용하여 "as"연산자를 사용하는 것이 언제 합리적입니까? http://groovy.codehaus.org/Developer+Testing+using+Maps+and+Expandos+instead+of+Mocks 간단한 경우를 들어 http:
GMock을 사용하여 기존 Java 프로젝트에 단위 테스트를 추가하고 있습니다. 테스트해야 할 메소드가 정적 메소드이며, 테스트 할 메소드 내에서 추가 정적 메소드를 사용하는 여러 위치가 있습니다. 테스트를위한 초기 진입 점 이외의 클래스에있는 거의 모든 정적 메서드를 부분적으로 모의하고 싶습니다. 예를 들어 : class StaticClass {
Groovy 클로저를 마크 업으로 허용하는 빌더를 만듭니다. 그러나 중첩 된 클로저를 사용하여 메서드 호출을 잡는 데 문제가 있습니다. Closure nested = {
foo() //will throw missingMethod exception
}
Closure root = {
foo() //prints 'missing foo [
새로운 Grails 프로젝트에서 작업하고 있으며 최근 Spring Security Core 생성 기본 클래스에서 beforeInsert/Update 이벤트를 통해 비밀번호를 자동 인코딩합니다. 이는 인코딩을 수행하는 멋지고 깨끗하며 DRY적인 방식이며, 또한 그렇게하는 것을 잊을 수 없게 만듭니다. 그러나 이제는 User 클래스를 사용하는 일부 단위 테스트