gpt4 book ai didi

c# - 测试验证 C#

转载 作者:行者123 更新时间:2023-11-28 21:01:56 25 4
gpt4 key购买 nike

下面我粘贴了我的代码。我正在验证一项措施。我已经编写了读取 Linux 文件的代码。但是如果我想在这里传递多个文件名,这可能吗?因此,例如,不是我的测试只验证一个文件,我可以做一个循环,这样它就可以一次准备好多个文件。

一旦文件被读取并继续,我返回 actualItemData。在我的下一个方法中,我想调用此 actualItemData,以便在我的 var actual

中发布数据
   public string validateMeasurement
{
var processFilePath = **"/orabin/app/oracle/inputs/ff/ff/actuals/xx_ss_x.csv.ovr";**
var actualItemData = Common.LinuxCommandExecutor.
RunLinuxcommand("cat " + processFilePath);

**return actualItemData;**
}

public void validateInventoryMeasurementValue(string Data, string itemStatus)
{

var expected = '6677,6677_6677,3001,6';

**var actual = actualItemData);**


Assert.AreEqual(expected, actual);
}

最佳答案

看起来您正在使用 msunit。据我所知它不支持测试用例。如果您要使用 nunit,则可以使用 TestCase 属性执行此操作。

[TestCase("myfile1.txt", "6677,6677_6677,3001,6")]
[TestCase("myfile2.txt", "1,2,3")]
public void mytest(string path, string expected)
{
var actual = Common.LinuxCommandExecutor.
RunLinuxcommand("cat " + path);

Assert.AreEqual(expected, actual);
}

通常您不想编写跨代码边界的单元测试(读取文件、访问数据库等),因为这些测试往往很脆弱且难以维护。我不确定您的代码的目的,但看起来您可能正在尝试解析数据以检查其有效性。如果是这种情况,您可以编写一系列测试以确保当您的生产代码(解析器)被赋予字符串输入时,您会得到符合您期望的输出。例如

[Test()]
public void Parse_GivenValidDataFromXX_S_X_CSV_ShouldReturnTrue(string filename)
{
// Arrange
var parser = CreateParser(); // factory function that returns your parser
// Act
var result = parser.Parse("6677,6677_6677,3001,6");
// Arrage
Assert.IsTrue(result);
}

关于c# - 测试验证 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50602769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com