|
|
1
33
这是一个经典的基于状态的测试与基于行为的测试场景。 在这个简单得可笑的例子中,测试输出很好。不过,在某些时候,您会遇到执行后检查状态很复杂的测试。相反,您想检查行为(例如,验证changeit是否是用特定值调用的)。 在这一点上,你可能应该研究一个像Rhino这样的模拟对象框架。Mocks(.Net)或Mockito(Java),并开始编写更多基于接口的代码。 |
|
|
2
14
你有很多选择。哪一个最好取决于你的问题中不清楚的细节。
|
|
|
3
13
如果你已经测试过
|
|
|
4
5
只是测试
这并不重要
怎样
modify完成了它的工作,只是它
做
它的工作。事实上,它恰好使用
如果将来你改变了
也就是说,测试
|
|
|
5
4
按优先次序排列
.
假设
|
|
|
6
3
在这种情况下,什么是“测试代码”?设置并检查结果?如果是这样,我会将其重构为不同的方法,并在每个测试中使用它。不过,只有当它的数量很大时,我才会这样做——仅仅通过阅读该方法的代码,就能看到测试所做的一切,这对可读性有好处。 说实话,复杂的测试方法一开始经常让我感到困扰——通常它们实际上是无法避免的,但如果你 能 简化它们,这是值得的。 |
|
|
7
2
如果你已经为replace()和changeit()编写了测试,那么modify的测试只会检查是否根据“value”的值返回了不同的结果。然而,您将在测试中重新实现该方法的逻辑,这有点荒谬。 在这种情况下,我不会测试修改,直到它具有更复杂的逻辑,或者更好的是被另一种更重要的测试方法使用。 |
|
8
2
好吧,不,你的测试代码不会有99%的相同,因为你实际上是在测试不同的东西,除非替换、更改和修改所有代码都返回相同的值。 不知道为什么会有困难。修改方法的测试应该大约有四行长。由于您已经在测试底层功能,并且只想确保此特定方法不会中断,因此编写一个测试此函数中两个可能的代码路径返回预期值的测试就足够了。 |
|
|
9
2
你基本上需要两次测试。
1) 传入一个字符串,如“The Quick Brown Fox Jumps!”(长度大于五),确保该值受以下因素的影响
2) 传入一个类似“Foo”(长度小于5)的字符串,并确保该值受以下因素的影响
你的测试(伪代码)可能看起来像这样:
显然,如果我知道replace()和changeit()应该做什么,我可以给你一个更现实的例子,但这应该能让你明白。如果它改变了原始值引用而不是返回它,那么在调用发生后,您可以将testValue用作实际值。 |
|
|
10
2
当测试以下边界条件时
|
|
|
11
2
您可以从这些方法中创建一个函数并模拟这些函数。或者,您可以创建一个虚拟方法,并使用Rhino mocks-partial mock来模拟这些虚拟方法。 |
|
|
12
0
与Justin Standard相同,
加
通过
|
|
|
wavesinaroom · 断言结构向量长度 1 年前 |
|
|
Tim Kirkwood · 比较空数据帧 1 年前 |
|
Kamran Khan · 使用单元测试ASP。NET核心 1 年前 |
|
|
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 1 年前 |
|
|
Ricky Mo · 角度测试如何模拟导入的const 1 年前 |
|
|
Natty · Visual Studio中缺少“代码覆盖率结果” 1 年前 |