Chciałbym przetestować zamknięcie "withCriteria" i nie jestem pewien, jak to zrobić. Widzę, jak wyśmiewać wywołanie Krytyka, ale nie testować kodu w zamknięciu. Podczas uruchamiania testu, który wykonuje polecenie "withCriteria", otrzymuję wyjątek MissingMethodException, mimo że kod działa poprawnie w normalnym przepływie wykonywania. Jakieś pomysły? Dzięki! SteveGrails withCriteria testing
Odpowiedz
Nie pójdę tą drogą. Zamiast tego przenieszę zapytanie do klasy domeny jako metodę statycznej wyszukiwarki i przetestuję je bezpośrednio w teście integracji z danymi rzeczywistymi. Wtedy możesz łatwo kpić z metody pomocnika, gdy zostanie wywołana w kontrolerze lub teście serwisowym.
class YourDomainClass {
...
static List<YourDomainClass> findFooBar() {
YourDomainClass.withCriteria {
...
}
}
}
Następnie w badanej jednostki:
def results = [instance1, instance2, instance3]
YourDomainClass.metaClass.static.findFooBar = { -> results }
W ten sposób można sprawdzić, czy kwerenda działa przeciwko bazy danych w pamięci w teście integracyjnym ale łatwo wyśmiewać go w testach jednostkowych.
Obecnie nie ma sztucznej implementacji kryteriów Hibernate. Musisz użyć testów integracji. Jednak zalecenie Burta, by uczynić tę metodę statycznej wyszukiwarki, jest dobre dla organizacji kodu. Powinieneś także spojrzeć na nazwane zapytania, opisane pod numerem http://www.grails.org/1.2+Release+Notes, aby uzyskać ładną składnię do tego.
nawiązaniu do odpowiedzi Burta, sprawdź nazwanych zapytań, jak opisano tutaj:
http://blog.springsource.com/2010/05/24/more-grails-1-3-features/
Następnie można mock nieruchomość/dostęp metody w badaniach jednostkowych, jak opisana przez Burt.
Ponieważ nikt nie wspomniał o opcji utworzenia DSL do uruchamiania innych DSL, oto pełne ujawnienie tej metody. Używam go dość często z bardzo dobrymi wynikami.
- 1. Grails Spring Security Testing
- 2. Silverlight 4 Unit Testing
- 3. RSpec send_file testing
- 4. JUnit Testing Exceptions
- 5. Grails: poziom Enterprise Grails
- 6. Unit Testing Flex obsługi zdarzeń
- 7. Laravel Unit Testing Dependency Injection
- 8. junit testing - assertEquals for exception
- 9. Zachowanie wobec państwa Based Testing
- 10. ASP.NET MVC Unit Testing - Sesje
- 11. Bug w geometrii Hit-Testing
- 12. Grails: Alternatives to Grails Doc?
- 13. Grails GGTS IDE GrailsProcessDiedException: Grails zmarł
- 14. Najlepszy biegacz testowy? (Unit Testing, .NET)
- 15. Unit Testing - tylko realizacji wynosi ułatwić testowanie
- 16. WPF: Adorner Hit Testing/MouseDown Event
- 17. Unit Testing problem w Visual Studio 2012
- 18. Unit Testing streszczenie fabryka, która pobiera parametry
- 19. Android Studio Instrumentation testing build variant
- 20. Testing „ramy” dla skryptów z niestandardowych nazw
- 21. Jak dochodzić Słowniki w Unit Testing
- 22. Unit Testing metodę zależną od kontekstu żądanie
- 23. Unit Testing z NSURLSession dla OCMock
- 24. CppUTest Unit Testing Framework Multiple Definition Exception
- 25. Unit Testing polimorficzny skojarzenia z opraw
- 26. Python unittest testing MongoDB losowo zawiedzie
- 27. Grails checkbox
- 28. Grails Export Plugin błędy
- 29. IntelliJ Grails 3 Project: Nie można uruchomić projektu Grails
- 30. grails Dostęp do aplikacji w jednostce Grails Test
Wymienione zapytań są świetne, ale nie był w stanie je wyśmiewać w testach jednostkowych. Czy udało Ci się to osiągnąć, czy też trzymałeś się testów integracyjnych? – j4y