如何在fitnesse测试中加载自定义比较器

时间:2016-01-20 17:17:06

标签: java fitnesse fitnesse-slim

我为Fitnesse创建了一个自定义比较器,并尝试加载它,但我无法让它工作。它在我的脚本表中完全被忽略了,它进行了直接的字符串相等比较。

比较

package com.company;
import fitnesse.testsystems.slim.CustomComparator;

public class ContainsComparator implements CustomComparator{

    @Override
    public boolean matches(String actual, String expected) {
        if(actual != null && actual.contains(expected)){
            return true;
        }
        else{
            return false;   
        }
    }
}

测试页面内容:

!define TEST_SYSTEM {slim}
!path C:\Path\To\My\Comparator.jar

!|Import|
|fitnesse.fixtures|

!| SetUp | CustomComparators=contains:com.company.ContainsComparator |

!|Script|com.company.SomeFixture|
|check| response|contains:something|

只有最后一次检查失败,返回:[那里的东西]预期[包含:某事]。没有其他异常或失败(例如,安装程序不会抛出错误)

我按照http://fitnesse.org/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestCustomComparatorshttp://www.fitnesse.org/FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile中的示例来实现这一点,但我找不到任何进一步的文档。

2 个答案:

答案 0 :(得分:2)

尝试通过plugins.properties文件注册自定义比较器。

答案 1 :(得分:0)

对于那些(像我一样)在应用接受的答案和问题评论之后仍然无法完成此工作的人:如果你使用fitnesse-standalone.jar运行fitnesse,插件只在内部寻找 plugins目录中的jar文件。放置类文件不会起作用。

此外,URLClassLoader用于查看jar文件,因此请确保类文件位于与其包对应的目录中。例如,问题中包含ContainsComparator的jar文件应具有以下目录结构:

.
+-- com
    +-- company
        +-- ContainsComparator.class