![]() |
1
7
让我们从你的最后一个问题开始。在何处注入依赖项:一种常见的方法是使用构造函数注入(如
described by Fowler
). 所以
我只能说,在我看来,你选择的道路是正确的。也就是说,当实施所有这些测试的实际成本对管理层来说变得显而易见时,管理层可能会大吃一惊。
|
![]() |
2
2
您在文章的第一部分描述的测试(当您尝试所有部分时)通常被定义为集成测试。作为解决方案中的一个良好实践,您应该有一个单元测试项目和一个集成测试项目。为了在代码中注入依赖项,第一个也是最重要的规则是使用接口编写代码。假设这样,假设您的类包含一个作为成员的接口,并且您希望对其进行注入/模拟:您可以将其作为属性公开,也可以使用类构造函数传递实现。 我建议您使用NUnit或MBunit作为测试框架,使用Moq作为模拟框架(它的输出比Rhino mock更清晰) 下面的文档中有一些关于如何使用Moq模拟的示例 http://code.google.com/p/moq/wiki/QuickStart 希望有帮助 |
![]() |
3
2
例如:
|
![]() |
4
1
|
![]() |
5
0
当您遇到深度嵌套层次结构的问题时,这只意味着您没有注入足够的依赖项。
您应该做的是将Baz作为Bar对象构造函数的参数传递。然后应该将Bar传递给Foo对象的构造函数。FoO永远不应该接触甚至知道BAZ的存在。只有酒吧在乎巴兹。在测试Foo时,您将使用Bar接口的另一个实现。这个实现可能只会记录调用Blah的事实。它不需要考虑BAZ的存在。
你应该这样做:
如果您做得正确,那么每个对象只需要处理它直接与之交互的对象。
|
![]() |
6
0
听起来有点挣扎:
我认为这两个测试都很重要
当然,在每次发现bug时,最好先添加单元测试,最好是在修复之前。这样你就可以确保测试在修复前中断,然后修复会使测试通过。
当然,在对类进行其他更改之前,不需要对该类进行任何重构。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 7 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 8 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 8 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 8 月前 |