用FitNesse测试android错误:"无法调用构造函数..." &安培; "实例......不存在"

时间:2013-05-28 10:10:59

标签: android testing fitnesse

我想弄清楚FitNesse是如何工作的,并没有成功运行测试。 有没有人可以帮助我,我错过了什么?

我已按照“Android应用程序测试指南”一书中的所有步骤进行操作。 我有一个android示例项目TemperatureConverter和一个测试项目TemperatureConverterTest。

Bellow是我的FitNesse Wiki:

!contents -R2 -g -p -f -h
!define TEST_SYSTEM {slim}

!path C:\User\Workspaces\android\FitNesse\fitnesse.jar
!path C:\User\Workspaces\android\TemperatureConverter\bin\classes\
!path C:\User\Workspaces\android\TemperatureConverterTest\bin\classes\ 

!|import                                   |
|com.example.aatg.tc.test.fitnesse.fixture|

!define COLLAPSE_SETUP {true}
!define COLLAPSE_TEARDOWN {true}

!|TemperatureConverterCelsiusToFahrenheitFixture          |
|celsius|fahrenheit?                                      |
|0.0    |~= 32                                            |
|100.0  |212.0                                            |
|-1.0   |30.2                                             |
|-100.0 |-148.0                                           |
|32.0   |89.6                                             |
|-40.0  |-40.0                                            |
|-273.0 |~= -459.4                                        |
|-273   |~= -459.4                                        |
|-273   |~= -459                                          |
|-273   |~= -459.40000000000003                           |
|-273   |-459.40000000000003                              |
|-273   |-459.41 < _ < -459.40                            |
|-274.0 |Invalid temperature: -274.00C below absolute zero|

但是当我运行测试时,我有以下错误:

enter image description here

2 个答案:

答案 0 :(得分:2)

要做的第一件事是检查类路径声明。您收到的错误表明FitNesse没有找到您的课程。

确保在测试的父页面中有一个!path声明,并确保它已正确定义。

有关详细信息,请参阅http://fitnesse.org/FitNesse.FullReferenceGuide.UserGuide.WritingAcceptanceTests.ClassPath

<强>更新 现在我可以看到你确实有你的!path语句。我以前一定都错过了。还有一些事情要看:

  • 您的灯具是否在正确的位置有.class文件?
  • 您的fixture类是否有一个需要参数的构造函数方法?

答案 1 :(得分:1)

父套件页面或测试页面中的!path语句应指向包含.class文件的父包所在目录的路径,而不一定指向包含类文件本身的子目录。目录结构的其余部分由测试页上导入表中的类路径隐含。

所以,在你的例子中,你有

  • C:\User\Workspaces\android\TemperatureConverter\bin\classes\
  • 的路径
  • 导入com.example.aatg.tc.test.fitnesse.fixture

因此您需要连接它们以查找.class文件位置     C:\用户\工作区\机器人\ TemperatureConverter \ BIN \类\ COM \示例\ AATG \ TC \测试\ FitNesse的\夹具\ TemperatureConverterCelsiusToFahrenheitFixture.class

适用于* nix用户

  • !路径不应该包含C:\它应该来自你的根目录 带正斜杠的文件系统
  • /Users/johndoe/myFitProject/target/test-classes

这应该是java项目的编译类目录树已植根的系统目录...换句话说,“com”文件夹的位置最终包含.class文件。