Fitnesse 如何在 Java 中访问 _root.wiki 内容

问题描述

fitnesse 非常新

到目前为止我尝试过的:

  • 试图在 fixture.wiki 中设置一个符号,但我没有工作,我认为它应该在 Java 中设置并在 de Wiki 中使用。对吗?
  • 尝试在 Fixture.wiki 中定义变量,但在 Java 中调试时 Fixture 看不到它们

我认为可能有效,但出于某种原因不想要;

  • 使用夹具参数添加属性。但是,我的目标是使用这些参数在数据库中创建不同的对象,并使用这些属性添加参数列表 groes.....

我的解决办法:

  • 通过路径读取 wiki 文件并过滤掉我需要的属性。不太好。

也许我都错了,但我希望你们能告诉我在我的 Java 夹具代码中使用 wiki 数据的方法

解决方法

我不认为有一种简单的方法可以在您的装置代码中获取 .wiki 页面的内容(至少不应该有一个 ;-))。

您将参数传递给灯具的方法是我推荐的。但我完全理解传入许多属性不是很好。尤其是在许多测试中使用同一个列表没有好处时维护一个大列表。

我建议您创建一个(容器)变量,某种映射/散列,首先填充您需要的所有属性,然后将其传递给您的装置。通过这种方式,您只需将单个变量传递给测试,并且添加/删除属性不会影响您调用设备的方式。该变量是一个可以在运行时修改的细长变量。

my fixtures project 中,我创建了 MapFixtureMapOfMapsFixture,除了检查地图的内容之外,它们还允许您操作地图的上下文来定义这样的变量。然后可以在 (Suite)SetUp 或场景中定义要放入其中的属性。该项目还包含显示 MapFixtureMapOfMapsFixture 用法的示例页面。

例如在设置页面中:

// use the DataAnnotation package - you might need to add it using NuGet
using System.ComponentModel.DataAnnotations; 

[Table("Items")]
public class Item //: DbContext
{
    [Key]
    public int listing_id { get; set; }

    ...
}

然后在测试页面本身:

|script     |map fixture                |
|set value  |user   |for       |username|
|set value  |secret |for       |password|
|$dbProps=  |copy map                   |

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...