我与挣扎的部分是,无论我曾经读到,然后再编写测试函数会谈。但是我觉得只有我先写函数然后编写反映函数内部工作的测试才能工作。
听起来好像你患了test-driven development(TDD)常见的鸡/蛋问题。除非您在编写代码之前编写测试,否则在知道代码之前您不知道要测试什么,并且您认为不能执行TDD。
这真的是一个设计师的块(tm)的情况。就像作者的封锁一样,通过编码完成这项工作通常是很好的 - 即使你把所有的代码都扔掉了。
破解原型,然后假装它不存在。(不要运送:)这个原型应该探索你不熟悉的概念,或者没有足够的信息来开始设计。它应该让你熟悉这个问题,以便你可以开始设计。
当你有了一个概念验证,代码审查了它。在你的评论中,确定你想让公共接口看起来像什么,哪些架构模式最适合该程序,哪些依赖应该彼此隔离(并在测试中被嘲笑)。做笔记,或在项目计划软件/项目跟踪软件中的工作项目中提交需求。
如果您在评论中发现了这些问题,您应该尝试招聘其他程序员(以及可能设计人员/识别您业务需求的人员)来帮助您完成此项任务。代码导师可能是个好主意。
从该评论,你应该能够开始编码你的测试。或者你可以开始写技术规范 - 这个建议同样适用于两者。
(如果你工作在一个团队中,收集需求和获取用户反馈/执行UATs还要求,但可能是别人的工作)
编辑
请记住,这只是解决这个问题的一种方法。另一种方法是简单地放松任何TDD应该如何工作的清教徒般的理想,并简单地开发与代码并行的测试。同时检查它们。
在没有TDD的情况下进行单元测试也很好。单元测试赋予更多的好处,而不仅仅是编码你的设计和需求。当您添加新功能或修复错误(回归测试)或移植代码时,它们也是巨大的帮助。
写作测试首先是一种称为TDD的额外方法:http://stackoverflow.com/questions/tagged/tdd – gideon 2011-03-18 06:10:23