【问题标题】:Testing android with FitNesse error: "Could not invoke constructor for .." & "The instance ... does not exist"使用 FitNesse 测试 android 错误:“无法为 .. 调用构造函数”和“实例 ... 不存在”
【发布时间】:2016-10-17 09:07:40
【问题描述】:

我试图弄清楚 FitNesse 的工作原理,但未能成功运行测试。 有谁可以帮我解决我所缺少的?

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

下面是我的 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|

但是当我运行测试时出现以下错误:

【问题讨论】:

    标签: android testing fitnesse


    【解决方案1】:

    首先要做的是检查你的类路径声明。您收到的错误表明 FitNesse 没有找到您的课程。

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

    请参阅http://fitnesse.org/FitNesse.FullReferenceGuide.UserGuide.WritingAcceptanceTests.ClassPath 了解更多信息。

    更新: 现在我可以看到你确实有你的 !path 语句。我以前一定很想念他们。所以还有几件事要看:

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

    【讨论】:

    • 非常感谢您的回复,目前我正在参与另一个项目,稍后可以进行测试。
    【解决方案2】:

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

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

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

    因此您需要将它们连接起来以找到 .class 文件位置 C:\User\Workspaces\android\TemperatureConverter\bin\classes\com\example\aatg\tc\test\fitnesse\fixture\TemperatureConverterCelsiusToFahrenheitFixture.class

    对于 *nix 用户

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

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

    【讨论】:

    • 非常感谢,我改天试试,因为我推迟了它的调查
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多