繁体   English   中英

我应该使用哪个C#数据存储?

[英]What C# data store should I use?

我正在尝试创建一个测试框架,但不确定最好使用什么来存储测试用例名称和将在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中时,它将显示测试用例名称和测试数据(如上面的xml结构所示的data1和data2)。

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

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

谢谢。

如果以XML定义测试用例,则可能会受益于在XML Schema Definition文件中定义其结构,并使用工具从该.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>

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

对于Windows应用程序(控制台或Winforms),您可以仅在第一次使用它时将其存储在内存中,然后继续查找它。

另一方面,如果它是Web界面,则我强烈建议您内置.net Web缓存。 它非常高效,并且具有有效的缓存过期选项,例如,每次更改文件时都可以重新加载文件,否则可以持久保存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM