Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何应用TDD/BDD方法,使用Oracle数据库中的数据从C#创建Excel文件_C#_Unit Testing_Tdd_Bdd - Fatal编程技术网

如何应用TDD/BDD方法,使用Oracle数据库中的数据从C#创建Excel文件

如何应用TDD/BDD方法,使用Oracle数据库中的数据从C#创建Excel文件,c#,unit-testing,tdd,bdd,C#,Unit Testing,Tdd,Bdd,我正在启动一个新项目,在这个项目中,我必须根据Oracle数据库中的一些数据创建和操作多个Excel文件。我想在这个项目中学习和应用TDD/BDD方法,以改善我的编程习惯和项目本身 然而,我不确定我应该从哪里开始?我正在寻找一些指导或路线图,以确保我确实正确地应用了这些概念 我需要检查什么?如果我无法安装一些DI或模拟工具,我是否有正确创建TDD/BDD方法的方法 我之所以说可能无法安装软件,是因为并非所有软件都是公司允许的 到目前为止,我已经安装了nUnit。我不确定是否需要其他工具或代码框架

我正在启动一个新项目,在这个项目中,我必须根据Oracle数据库中的一些数据创建和操作多个Excel文件。我想在这个项目中学习和应用TDD/BDD方法,以改善我的编程习惯和项目本身

然而,我不确定我应该从哪里开始?我正在寻找一些指导或路线图,以确保我确实正确地应用了这些概念

我需要检查什么?如果我无法安装一些DI或模拟工具,我是否有正确创建TDD/BDD方法的方法

我之所以说可能无法安装软件,是因为并非所有软件都是公司允许的

到目前为止,我已经安装了nUnit。我不确定是否需要其他工具或代码框架/库


谢谢。

我会通过NuGet查看mspec库

IMO,如果您是初学者,并且想学习TDD和BDD,那么这可能不是开始学习的最佳项目

TDD和BDD在处理对象时非常有效。您与对象的距离越远,它就变得越复杂,因为您要处理的外部依赖性很难测试。DB和Excel文件都是很好的例子。尽管实例化测试对象、将其设置为已知状态并在某些操作后验证其状态非常简单,但对于DB来说,同样的事情也很复杂:您需要使用真实的DB,设置其状态,并编写额外的代码来验证其状态(这更像是一种集成测试方法),或者使用模拟,这可能不是最简单的技术开始


我的建议是首先关注应用程序中严格处理对象的部分。在这种情况下,NUnit和类似Moq的模拟框架基本上就足够了

感谢您提到,这不是TDD/BDD的最佳项目开始。我也有同样的印象(你也证实了这一点),因为我看到的大多数文章和示例都更面向对象。我不选择这个项目作为TDD/BDD的学习点,但我必须做这个项目,我想我会尝试同时做一些BDD/TDD。我认为在这个项目上使用TDD不会有什么坏处,但这不是最简单的。我将重点关注你的应用程序的核心:假设你有一些从数据库中获得的数据,将它们封装在对象中,并将它们转换为动作,再次封装在对象中,在Excel文件中执行。这一部分很容易测试,因为您可以验证对象的行为,并使设计与数据的存储方式分离。TDD方面最困难的部分是检查您是否从数据库中获得了正确的数据,以及给定输出对象的正确Excel文件。