Fitnesse: __EXCEPTION __: java.lang.NullPointerException на светильниках

Я работаю с фитнес (20140630) +maven

Но когда я запускаю свой тест, я получаю исключение:

<span>EXCEPTION</span>: java.lang.NullPointerException в com.playtech.openapi.core.fitnesse.tests.Fixtures.createContext(Fixtures.java:14) [файл: /D: /FitnesseTests/IntegrationTestsMobileAdmin/com -p laytech-openapi-frontend -services/com.playtech.openapi.core.fitnesse.tests/target/classes/] at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) [rt.jar: 1.7.0_21] at sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:57) [rt.jar: 1.7.0_21] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar: 1.7.0_21] в java.lang.reflect.Method.invoke( Method.java:601) [rt.jar: 1.7.0_21] at fitnesse.slim.fixtureInteraction.DefaultInteraction.methodInvoke(DefaultInteraction.java:16) [fitnesse-standalone.jar] at fitnesse.slim.MethodExecutor.callMethod(MethodExecutor. java: 43) [fitnesse-standalone.jar] at fitnesse.slim.MethodExecutor.invokeMethod(MethodExecutor.java:30) [fitnesse-standalone.jar] at fitnesse.slim.MethodExecutor.findAndInvoke(MethodE xecutor.java:52) [fitnesse-standalone.jar] at fitnesse.slim.FixtureMethodExecutor.execute(FixtureMethodExecutor.java:20) [fitnesse-standalone.jar] at fitnesse.slim.StatementExecutor.getMethodExecutionResult(StatementExecutor.java:121) [fitnesse-standalone.jar] at fitnesse.slim.StatementExecutor.callAndAssign(StatementExecutor.java:109) [fitnesse-standalone.jar] at fitnesse.slim.instructions.CallAndAssignInstruction.executeInternal(CallAndAssignInstruction.java:38) [пригодность-автономный.jar] at fitnesse.slim.instructions.Instruction.execute(Instruction.java:30) [fitnesse-standalone.jar] at fitnesse.slim.ListExecutor $ Executive.executeStatement(ListExecutor.java:50) [fitnesse-standalone.jar ] at fitnesse.slim.ListExecutor $ Executive.executeStatements(ListExecutor.java:44) [fitnesse-standalone.jar] at fitnesse.slim.ListExecutor.execute(ListExecutor.java:84) [fitnesse-standalone.jar] в фитнесе. slim.SlimServer.executeInstructions(SlimServer.java:107) [fitnesse-standalone.jar] at fitnesse.slim .SlimServer.processTheInstructions(SlimServer.java:94) [fitnesse-standalone.jar] at fitnesse.slim.SlimServer.processOneSetOfInstructions(SlimServer.java:68) [fitnesse-standalone.jar] at fitnesse.slim.SlimServer.tryProcessInstructions(SlimServer.java: 54) [fitnesse-standalone.jar] at fitnesse.slim.SlimServer.serve(SlimServer.java:40) [fitnesse-standalone.jar] at fitnesse.slim.SlimService.handle(SlimService.java:164) [ fite-standalone.jar] at fitnesse.slim.SlimService.acceptOne(SlimService.java:172) [fitnesse-standalone.jar] at fitnesse.slim.SlimService.accept(SlimService.java:134) [fitnesse-standalone.jar] at fitnesse.slim.SlimService.startWithFactory(SlimService.java:65) [fitnesse-standalone.jar] at fitnesse.slim.SlimService.main(SlimService.java:51) [fitnesse-standalone.jar]

Это мой контент для фитнеса

! содержание -R2 -g -p -f -h

! define TEST_SYSTEM {slim}! путь D:\FitnesseTests\IntegrationTestsMobileAdmin\com -p laytech-openapi-frontend-services\com.playtech.openapi.core.fitnesse.tests\target\classes

! pomFile D:\FitnesseTests\IntegrationTestsMobileAdmin\com -p laytech-openapi-frontend-services\com.playtech.openapi.core.fitnesse.tests\pom.xml@compile

| Импорт | | Com.playtech.openapi.core.fitnesse.tests |

! define COLLAPSE_SETUP {true}

! define COLLAPSE_TEARDOWN {true}

! | Сценарий | com.playtech.openapi.core.fitnesse.tests.Fixtures | | $ КОНТЕКСТ = | createContext |

Это мой код Java

public class Tests extends AbstractClientIT {

 public String createContext(){
 return "1234567";
 }
}


public class Fixtures {

 private Tests service2;


 public String createContext () throws RemoteException {
 return service2.createContext();
 }

}
2 ответа

Я новичок в работе с FitNesse, но сегодня я только что нашел этот параграф в книге "Test Driven.NET Development with FitNesse", стр. 24:

Если вы создали страницу (или попытались ее создать) и получили ошибку NullPointerException или страница просто не отображается, вы выбрали неправильное имя. FitNesse считает только слова CamelCase допустимыми именами страниц и строго придерживается этого. Название страницы должно начинаться с заглавной буквы и содержать хотя бы одну большую заглавную букву. Есть еще одна проблема, которой следует следить: последовательные заглавные буквы. FitNesse им не нравится. Таким образом, заглавные буквы в названии страницы должны быть разделены хотя бы одной строчной буквой. Это соглашение вызывает много головных болей для новичков FitNesse, но через некоторое время вы привыкнете к этому.


public String createContext () throws RemoteException {
 return service2.createContext();
}

service2 не был инициализирован, так что это ваш NPE

licensed under cc by-sa 3.0 with attribution.