在C#中,使用EPPlus庫進行單元測試時,通常會使用xUnit、NUnit或MSTest等測試框架。以下是一個使用xUnit進行單元測試的示例:
Install-Package EPPlus
Install-Package xunit
Install-Package xunit.runner.visualstudio
創建一個Excel文件,例如SampleData.xlsx
,并在其中添加一些數據。
創建一個名為ExcelHelper.cs
的類,用于處理Excel文件的讀取和寫入操作:
using OfficeOpenXml;
using System.IO;
using System.Linq;
public class ExcelHelper
{
public static void WriteToExcel(string filePath, params object[,] data)
{
using (var package = new ExcelPackage())
{
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
for (int i = 0; i < data.GetLength(0); i++)
{
for (int j = 0; j < data.GetLength(1); j++)
{
worksheet.Cells[i + 1, j + 1].Value = data[i, j];
}
}
package.SaveAs(new FileInfo(filePath));
}
}
public static object[,] ReadFromExcel(string filePath)
{
using (var package = new ExcelPackage(new FileInfo(filePath)))
{
var worksheet = package.Workbook.Worksheets["Sheet1"];
var data = worksheet.Cells.Select(c => c.Value).ToArray();
var result = new object[data.Length / 2, 2];
for (int i = 0; i < result.GetLength(0); i++)
{
result[i, 0] = data[i * 2];
result[i, 1] = data[i * 2 + 1];
}
return result;
}
}
}
ExcelHelperTests.cs
的測試類,使用xUnit框架對ExcelHelper
類進行單元測試:using System.IO;
using Xunit;
public class ExcelHelperTests
{
[Fact]
public void WriteToExcel_ShouldWriteDataToExcelFile()
{
// Arrange
var filePath = "SampleData.xlsx";
var data = new object[,]
{
{ "Name", "Age" },
{ "John", 30 },
{ "Jane", 28 }
};
// Act
ExcelHelper.WriteToExcel(filePath, data);
// Assert
Assert.True(File.Exists(filePath));
}
[Fact]
public void ReadFromExcel_ShouldReadDataFromExcelFile()
{
// Arrange
var filePath = "SampleData.xlsx";
var data = new object[,]
{
{ "Name", "Age" },
{ "John", 30 },
{ "Jane", 28 }
};
ExcelHelper.WriteToExcel(filePath, data);
// Act
var result = ExcelHelper.ReadFromExcel(filePath);
// Assert
Assert.Equal("Name", result[0, 0]);
Assert.Equal("Age", result[0, 1]);
Assert.Equal("John", result[1, 0]);
Assert.Equal(30, result[1, 1]);
Assert.Equal("Jane", result[2, 0]);
Assert.Equal(28, result[2, 1]);
}
}
這個示例展示了如何使用xUnit框架對ExcelHelper
類進行單元測試。你可以根據需要修改和擴展這個示例,以適應你的項目需求。