Tag: unit testing

设置属性行与模拟Mocked Microsoft.Office.Interop.Excel.Range

我想嘲笑Microsoft.Office.Interop.Excel.Range和之后可以得到属性Row(第一行范围的索引)。 Moq v 4.1.1309.1617 / nunit.framework v 2.6.3.13283在我的unit testing中,我尝试设置模拟的行为如下: var moqRowSelected = new Mock<Range>(); const int row = 1; moqRowSelected.SetupGet(x => x.Row).Returns(row); moqSheetBase.SetupProperty(x => x.RowSelected, moqRowSelected.Object); 在被unit testing的代码中,我使用Range如下: var iRow = PlanningSheet.RowSelected.Row; Range row = sheet.Rows[iRow]; testing运行时,会产生以下exception: 错误:类“Castle.Proxies.RangeProxy”中缺less方法'实例int32 [My.Example.Implementation.MyClass] Microsoft.Office.Interop.Excel.Range :: get_Row()'。 我怎样才能成功地实现这个嘲笑? 任何人都可以帮助我,谢谢。

使用c#读取Excel文件中的行

我已经添加了一个Excel文件来提供unit testing值。 下面是我之前做的一个例子 public void test1() { try { var Service = new Service.ServiceClient(); var Cid = testContextInstance.DataRow["CId"].ToString(); var MNumber = testContextInstance.DataRow["MNumber"].ToString(); var VID = testContextInstance.DataRow["VID"].ToString(); var isVisit = new Service.ISVisit() { }; var first = Service.Medis(isVisit).Cast<Service.ISMedi>().FirstOrDefault(); // Assert Assert.AreEqual("12345678", first.Proc.ProcID); } 。我正在使用Excel表格为untitest提供值。 通过使用上面的示例代码,我能够循环通过Excel中的每一行,并将值设置为variables。但要求是不要将excel作为数据驱动源附加,而不是使用Oledb方式在Excel中查询事物。说我用的是Microsoft.Office.Interop.Excel; 。 任何人都可以帮助我如何更改代码来检索excel中的数据,逐行并使用不同的方法将单元格分配给各个variables。 这是ac#unit testing框架

带有Nunit的Excel数据源的unit testing

我需要通过从C#中的excel数据源导入数据来testing与Nunit一些类,我找不到任何有用的资源来指导我,有没有解决scheme? 在Nunit考虑这个testing [Test] [TestCase(new[] { -4, -3, -3, -2, -1, 0, 1, 2, 2, 3, 4 }, new []{1, 0, 1, 0,1, 0, 1, 1, 0, 1, 0})] public void YourTest(int[] given, int[] expected) { ///some code } 我会从Excel中读取数据,如果我有一个Excel文件,我把给定的值在第一列和期望值在第二列: column1(in Excel) column2(in Excel) -4 1 -3 0 -3 1 -2 0 -1 1 0 0 […]

C#,Web应用程序。 testingExcel文件生成

在许多C#.NET Web应用程序中,用户需要将数据下载为Excel文件。 创build/pipe理Excel电子表格我使用: EPPlus 。 要打开Excel文件,我使用和推荐: Microsoft.Office.Interop.Excel 。 在一个MVC的应用程序中,我可以下载Excel文件: public ActionResult DownloadExcell() { byte[] report = _codeManager.CreateExcel(); return BinaryResponseReport(report); } private ActionResult BinaryResponseReport(byte[] report) { Response.Clear(); Response.Buffer = true; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment;filename=FooBar.xlsx"); Response.BinaryWrite(report); Response.End(); return RedirectToAction("Index"); } 但是,当testing_codeManager.CreateExcel()函数时,我不想_codeManager.CreateExcel() Web应用程序的所有步骤,以获得Excell的下载function。 所以在我的UnitTest项目的解决scheme。 我添加一个TestMethod: [TestMethod] public void TestExcellGeneration() { byte[] report = _codeManager.CreateExcel(); OpenExcelFromTempFile(excelFileBytes); } private […]

Visual Studio OrderedTests:已经从其基础RCW分离的COM对象不能使用

首先,这里使用的技术包括:Visual Studio,C#,Selenium WebDriver,Google Chrome和MS Excel。 我正在构build一个自动化框架来testing多个Web应用程序。 我正在使用Excel电子表格来提取variables数据,以便其他testing人员使用testing更容易。 在我们的烟雾testing过程中,我们通过了几个我已经编制好的unit testing。 因此,我认为创build一个有序testing是一个好主意。 当单独运行每个testing时,他们工作得很好。 但是,一旦我开始运行有序testing,列表中的第一个testing将运行,但是我得到这个错误: System.Runtime.InteropServices.InvalidComObjectException:不能使用已从其基础的RCW分离的COM对象。 我在名为ReadFile的类中创build对Excel电子表格的引用: static Excel.Application xlApp = new Excel.Application(); static Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"SPREADSHEET LOCATION"); static Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1]; static Excel.Range xlRange = xlWorksheet.UsedRange; 当我的testing通过或失败时,他们调用CleanUp方法,它包括退出chromedriver并调用ReadFile.Close()方法: xlWorkbook.Save(); xlWorkbook.Close(Type.Missing, Type.Missing, Type.Missing); xlApp.Quit(); GC.Collect(); GC.WaitForPendingFinalizers(); 我做了相当多的研究,发现可能需要调用Mashall.FinalReleaseComObject。 我也尝试过使用这个,但似乎没有什么差别。 我也注意到,第一次testing结束后,Excel进程继续运行几秒钟。 所以我试着睡觉线程,让它在下一次testing开始之前等待Excel完全closures,但是当Excel删除时(即使睡眠定时器还没有完成),它也会立即抛出exception。 无论如何,在这一点上,我正在寻找任何可能的指导,这是不胜感激。 请记住,我不是这些技术的专家。

unit testingw / Moq的Excel Interop + Type.Missing

我刚刚遇到一个例外,在编写unit testing的时候我无法解释自己。 (简化)我想testing的代码是: public object GetSecondColumn(Microsoft.Office.Interop.Excel.Range theRange) { return theRange.Columns[2, Type.Missing]; } 我试图写这个testing,但我不断收到一个例外: //Arrange var usedRange = new Mock<Range>(); var result = new Mock<Range>(); usedRange .Setup(m => m[It.IsAny<object>(), It.IsAny<object>()]).Returns( (object r, object c) => { return result.Object; }); //Assert GetSecondColumn(usedRange); 方法的调用抛出: System.ArgumentException Message=Missing parameter does not have a default value. Parameter name: parameters StackTrace: at […]

unit testingVS 2008使用Excel

当使用Excel(2003)为我的unit testing提供数据时,似乎认为当单元格具有TRUE / FALSE值时,如果没有先前的单元格值,则为空 if (TestContext.DataRow["SatisfactionExtremelySatisfied"] != DBNull.Value) model.SatisfactionExtremelySatisfied = (bool)TestContext.DataRow ["SatisfactionExtremelySatisfied"]; 示例Excel数据 DataRow SatisfactionExtremelySatisfied 0 1 2 TRUE 3 TRUE 使用OLEDB读取testing数据时,带有TRUE的单元不包含任何值(当在debugging中进行检查时),但当前面的单元格具有值FALSE时,正确地获得值TRUE。 我错过了什么吗?

Excel电子表格中的数据驱动的unit testing

如何在VS2012中设置数据驱动的unit testing方法,从Excel .xlsx电子表格读取数据? 我曾尝试使用谷歌search解决scheme,但结果要么是指老版本的Visual Studio或不是.xlsx文件。 到目前为止,我有一个testing类,testing方法和数据源文件TestData.xlsx,它在构build时复制到输出目录。

编码的UIunit testingExcel连接string不工作

我正在尝试使用Excel电子表格(xlsx)中的dynamic数据来编码UI。 我的DataSource属性似乎有问题。 我得到一个错误,说无法连接到数据源。 这是我的连接string: [DataSource("System.Data.Odbc", "Dsn=Excel Files;dbq=|DataDirectory|C:\\Test1.xlsx;defaultdir=C:\\;driverid=1046;maxbuffersize=2048;pagetimeout=5", "Sheet1$", DataAccessMethod.Sequential), DeploymentItem("Test1.xlsx"), TestMethod] 该xlsx文件是有效的,并在正确的位置。 谢谢

C#窗体unit testing

我现在正在为现有的软件编写unit testing,我的老板要求我写一个unit testing大纲/计划。 作为一个非常初级的C#开发人员,我试图find一种方法来为这个应用程序创build一个testing计划。 我已经build立了一个Excel文档,其中多张表格代表我的解决scheme中的每个项目。 我很困惑如何为所有可能的结果和input文件,特别是使用void和bool方法时。 或者当传递模型到一个方法中,那里有很多值被传入。 我怎样才能certificate通过,失败,以下2种方法的预期结果,基本大纲是我正在寻找的,而不是具体的文档: public static void ManualEntryToggleStateChanged(bool isChecked) { /* check for manual entry * if manual entry information can be entered * focus user to reg no */ moTextboxRegName.ReadOnly = !isChecked; moTextboxRegHerd.ReadOnly = !isChecked; if (isChecked) { moTextboxRegHerd.Text = ""; moTextboxRegName.Text = ""; moDropDownListBreed.Focus(); } } public static void […]