- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于Arrange-Act-Assert的经典测试模式,我经常发现自己在 Act 之前添加了反断言。这样我就知道传递的断言确实是作为操作的结果传递的。
我认为它类似于红绿重构中的红色,只有当我在测试过程中看到红色条时,我才知道绿色条意味着我已经编写了使一个区别。如果我编写了一个通过测试,那么任何代码都可以满足它;类似地,对于 Arrange-Assert-Act-Assert,如果我的第一个断言失败,我知道任何法案都会通过最终的断言 - 因此它实际上并没有验证有关该法案的任何内容。
您的测试遵循这种模式吗?为什么或为什么不?
更新澄清:初始断言本质上与最终断言相反。这并不是断言 Arrange 有效;而是说 Arrange 有效。这是一项法案尚未生效的断言。
最佳答案
这不是最常见的事情,但仍然很常见,有自己的名字。这种技术称为“Guard Assertion”。您可以在 Gerard Meszaros 所著的优秀书籍 xUnit Test Patterns(强烈推荐)中的第 490 页找到它的详细描述。
通常,我自己不会使用这种模式,因为我发现编写一个特定的测试来验证我认为需要确保的任何前提条件更为正确。如果前提条件失败,这样的测试应该总是失败,这意味着我不需要将它嵌入到所有其他测试中。这可以更好地隔离关注点,因为一个测试用例仅验证一件事。
给定的测试用例可能需要满足许多先决条件,因此您可能需要多个防护断言。不必在所有测试中重复这些测试,而是为每个先决条件进行一个(且仅一个)测试,从而使您的测试代码更易于维护,因为这样您的重复次数就会减少。
关于unit-testing - 应该是 "Arrange-Assert-Act-Assert"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1021007/
我想安排 3 个正方形 ggplots,其中一个较大,另外两个较小,与第一个相邻。 这是我的尝试: gg1 <- ggplot(mtcars,aes(x=hp,y=mpg))+ geo
我必须使用 gridExtra::grid.arrange 来绘制除彼此之外的多个图,因为我使用该包来创建图的拟合。 我必须使用 grid.arrange 为绘图创建一个标题。 现在我想将两者结合起来
可以合并Arrangement.spacedBy(16.dp)和 Arrangement.Center在 Row.horizontalArrangement ? 我想做的是将内容水平居中并设置默认间距
我不太明白单元测试中模式的安排部分和行为部分之间的区别。 Arrange ONLY 是否意味着对象的创建?为什么我们首先要将 Arrange 与 Act 部分分开,以及决定某物是否属于 Act 而不是
我通常使用 dplyr 中的 arrange() 函数对数据集进行排序,但它的行为方式我无法理解。我花了一点时间才弄清楚这个问题。我已经修复了我的代码并使用 order() 来做同样的事情,但现在我很
题目地址:https://leetcode.com/problems/beautiful-arrangement/description/ 题目描述 Suppose you have N inte
题目地址:https://leetcode.com/problems/arranging-coins/#/descriptionopen in new window 题目描述 Youhave a
从一个 data.frame 开始,我想创建其他几个具有不同顺序的。我会直接举个例子,因为我相信这样更容易理解我的疑惑。 data = data.frame(x1 = sample(1:100,20)
我正在尝试将脚注添加到 grid.arrange 图。我在这个可重复的例子中提出了我的想法: ) library(ggplot2) library(gridExtra) library(grid) l
我想使用ggplot2从列表中创建grid.arrange图的多图,但是在按行排列之前按列排列它们。 gg_list1 <- list(qplot(mpg, disp, data = mtcars),
我正在构建一个绘图组合(使用 ggplot2 创建)运行函数 grid.arrange . 虽然我已经完成了作文,我希望图不要太靠近边距 . 我知道对于其他类型的绘图,函数 par()允许修改这些距离
我正在使用 gridExtra 包 grid.arrange 函数组合多个 ggplot 图。 我这样做: p1= 2.0.0 的情况下,main 参数已重命名为 顶部。 关于从 grid.arran
我问了一个问题 HERE关于网格排列并得到了极好的反响。我现在想减少图之间的空间,但出现错误。首先,我展示了有效的代码,然后是错误代码(我尝试过的)。我实际上找不到 grid.arrange并且一直假
我一直在查看有关在自定义函数内向 dplyr 函数传递参数的帖子,但无法解决以下情况: 我创建了以下函数来获取数据帧的子集。 library(Lahman) top_leaders % d
我觉得我总是在问同一个问题的不同变体:( 我最近使用 do.call 函数在 grid.arrange 上显示了一个绘图+表格列表 library(grid) library(ggplot2) lib
我已经制作了一个类似于下面代码所描述的图,从而生成了发布的图像。我不知道如何将整个背景设置为与定义子图时使用的相同的“grey80”颜色。 IE。我想用相同的颜色对图之间和图例两侧的白色区域进行着色。
我似乎无法找到如何使用 grid.arrange 增加两个图之间的空间的解决方案。我没有找到如何继续的线索。我不想改变绘图的大小或类似的东西。 grid.arrange(plot1, plot2, n
我正在开发一个关于编辑距离的 Java 项目,即最小操作数(定义的三个操作中,请参阅 here 了解更多信息!)。我对 Java 完全陌生,它似乎是一种很棒的面向对象语言,但可能不像 Matlab 那
在这个 super 简单的代码中,我希望 dplyr 首先按我的分组变量(金发女郎)排列,然后按年龄排列,但它似乎根本没有考虑分组变量。我很确定这在过去对我有不同的影响。我想要(和期望)的是它会首先按
给你 N 个高度为 1…N 的方块。你可以用多少种方式将这些块排成一排,这样从左边看你只能看到 L 块(其余的被更高的块隐藏)而从右边看你只能看到 R 块?给出的示例 N=3, L=2, R=1只有一
我是一名优秀的程序员,十分优秀!