首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >excel中单元格的模拟测试合并

excel中单元格的模拟测试合并
EN

Stack Overflow用户
提问于 2013-04-24 00:09:53
回答 1查看 518关注 0票数 0

我有班工作与excel工作表。如何编写测试来证明Merge方法被调用。

代码语言:javascript
复制
/// <summary>
        /// Merges the cells together.
        /// </summary>
        /// <param name="ws">The worksheet.</param>
        /// <param name="cellsToMerge">The cells to merge.</param>
        /// <exception cref="System.ArgumentNullException">ws;Worksheet has to be defined</exception>
        /// <exception cref="System.ArgumentException">Cells cannot contain null or empty string;cellsToMerge</exception>
        public void MergeCellsTogether(Worksheet ws, string cellsToMerge)
        {
            if(ws==null) throw new ArgumentNullException("ws","Worksheet has to be defined");
            if(string.IsNullOrEmpty(cellsToMerge))throw new ArgumentException("Cells cannot contain null or empty string", "cellsToMerge");

            var cells = ws.Cells[cellsToMerge]; // failing to setup
            ws.Range[cells].Merge();
        }

现在我的测试使用的是MOQ

代码语言:javascript
复制
[TestMethod]
        public void TestForMergingCellsTogether()
        {
            // assign
            var cellsToMerge = "A1:C3";

            // mock
            var ws = new Mock<Worksheet>();
            var range = new Mock<Range>();
            ws.Setup(x => x.get_Range(It.IsAny<object>(), It.IsAny<object>())).Returns(range.Object);

// this is part that is giving my headake           
ws.Setup(x => x.Cells[It.IsAny<object>(),It.IsAny<object>()]).Returns(range.Object);


            range.Setup(x => x.Merge(It.IsAny<object>()));
            // act 
            var ps = new RenderProcess("fileName");
            ps.MergeCellsTogether(ws.Object, cellsToMerge);

            // assert
            range.VerifyAll();
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-24 19:33:10

我已经找到了我的问题的答案。我的方法是不正确的。

我的更新(简化)代码

代码语言:javascript
复制
/// <summary>
        /// Merges the cells together.
        /// </summary>
        /// <param name="worksheet">The worksheet.</param>
        /// <param name="cellsToMerge">The cells to merge.</param>
        /// <exception cref="System.ArgumentNullException">ws;Worksheet has to be defined</exception>
        /// <exception cref="System.ArgumentException">Cells cannot contain null or empty string;cellsToMerge</exception>
        public void MergeCellsTogether(Worksheet worksheet, string cellsToMerge)
        {
            if(worksheet==null) throw new ArgumentNullException("worksheet","Worksheet has to be defined");
            if(string.IsNullOrEmpty(cellsToMerge))throw new ArgumentException("Cells cannot contain null or empty string", "cellsToMerge");

            worksheet.Range[cellsToMerge].Merge();
        }

和我的测试方法:

代码语言:javascript
复制
 // assign
                var cellsToMerge = "A1:C3";

                // mock
                var ws = new Mock<Worksheet>();
                var range = new Mock<Range>();
                ws.Setup(x => x.get_Range(It.IsAny<object>(), It.IsAny<object>())).Returns(range.Object);

                range.Setup(x => x.Merge(It.IsAny<object>()));
                // act 
                var process = new RenderExcel();
                process.CreateExcelWorkSheet("fileName");
                process.MergeCellsTogether((Worksheet)ws.Object, cellsToMerge);

                // assert
                range.VerifyAll();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16174221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档