我应该使用什么C#数据存储?

时间:2012-06-10 21:49:20

标签: c#

我正在尝试创建一个测试框架,并且不确定最好用什么来存储将在XML文件中提供的测试用例名称和数据。例如,我想测试打印机功能,因此它具有构造函数,打开打印机连接,将数据发送到打印机,关闭打印机连接。所以XML将是:

<Printer>
  <TestCaseName>"Printer_Construct"</TestCaseName>
    <Data1>"Printer1"</Data1>

  <TestCaseName>"Printer_OpenConnection"</TestCaseName>
    <Data1>"Printer1"</Data1>

  <TestCaseName>"Printer_PrintString"</TestCaseName>
    <Data1>"Printer1"</Data1>
    <Data2>"Printing my string"</Data2>

  <TestCaseName>"Printer_CloseConnection"</TestCaseName>
    <Data1>"Printer1"</Data1>
</Printer>

以下是我的测试框架的工作方式:

1-当测试运算符运行测试框架时,首先它将所有案例名称仅加载到listbox1中。它还不会加载测试用例数据。

2-当测试操作员选择要运行的特定测试用例时,它会将该测试用例加载到listbox2中。因此,当它将测试用例加载到listbox2时,它将显示测试用例名称和测试数据(data1和data2,如上面的xml struct所示)。

3-现在,只要测试操作员单击“运行”按钮,就可以测试listbox2中的测试用例。

那么如何存储测试用例数据?我应该将这些数据存储在内存中吗?如果是这样,我应该使用什么存储数据功能?如果不将这些数据存储在内存中,这是否意味着每次访问测试用例数据时都必须读取XML,这样做是不错的做法?

感谢。

2 个答案:

答案 0 :(得分:3)

如果您在XML中定义测试用例,那么您可以从XML模式定义文件中定义其结构并使用tool生成内存数据结构以及解串器(自动读取器)中受益来自那个.xsd文件。该工具将为您提供可包含在程序中的C#文件。你会惊讶地发现这种表现形式是多么容易。

但是,在开始之前,虽然您的XML结构可能在这个非常简单的初始情况下工作,但它似乎不太可维护。如果“数据”节点在逻辑上属于它们之前的“测试用例”节点,那么它甚至应该在XML结构中,如下所示:

<Printer>
    <TestCaseName Name="Printer_Construct">
        <Data1>"Printer1"</Data1>
    </TestCaseName>

    <TestCaseName Name="Printer_PrintString">
        <Data1>"Printer1"</Data1>
        <Data2>"Printing my string"</Data2>
    </TestCaseName>
</Printer>

答案 1 :(得分:1)

存储此类信息的位置在很大程度上取决于您的界面。

对于Windows应用程序(控制台或winforms),您可以在第一次需要时将其存储在内存中并继续查找。

另一方面,如果它是一个Web界面,我强烈建议使用内置的.net Web缓存。它非常高效,并且具有强大的缓存过期选项,例如可以在任何时候更改文件时重新加载文件,并以其他方式保留。