![]() |
1
10
您不需要编写测试,而是要编写一个如何使用类的示例(除了通过公共方法之外,您不能使用它)。你要展示为什么你的课程对其他课程有价值。您正在定义类的职责范围,同时(通过模拟)显示在其他地方委派的职责。 同时,您可以质疑职责是否适当,并调整类上的方法,使其尽可能直观地可用。您正在寻找易于理解和使用的代码,而不是易于编写的代码。 如果你能用例子来思考,并通过行为来提供价值,那么你将创建易于使用的代码,以及其他人可以遵循的例子和描述。您将使您的代码安全且易于更改。如果你考虑测试,你会把它钉住,这样就没有人能打破它。你会很难改变的。 如果它足够复杂,以至于有一些内部方法确实需要单独测试,请将它们分解到另一个类中,然后说明为什么该类是有价值的,以及它对使用它的类的作用。 希望这有帮助! |
![]() |
2
2
我认为这里有两个问题。 一是从BDD的角度来看,您通常在比TDD更高的级别上进行测试。因此,您的BDD测试将断言比TDD测试更大的功能块,并且应该始终是“黑盒”测试。 第二个问题是,如果您觉得有必要测试私有方法,即使是在单元测试级别,也可能是您的代码违反了 Single Responsibilty Principle 并且应该重构,以便您关心的方法可以作为不同类的公共方法进行测试。MichaelFeathers最近做了一个有趣的演讲 The Deep Synergy Between Testability and Good Design ." |
![]() |
3
1
是的,关注类的公开功能。私有方法只是要测试的公共函数的一部分。这一点有点争议,但在我看来,测试一个类的公共功能就足够了(其他一切都违反了OOP原则)。 |
![]() |
theQuestionMan · 测试文件和功能文件位于不同的目录中 9 年前 |
![]() |
Aftab Naveed · Behat3子上下文 9 年前 |
![]() |
DanielM Onshop · 查找Behat中的步骤N 9 年前 |
![]() |
user3735114 · web+移动应用程序的Cucumber文件夹结构 10 年前 |
![]() |
JOG · 如何准确了解Behave中的错误 11 年前 |
![]() |
ruby-digger · Rspec:如何测试局部渲染和参数? 11 年前 |