问题标签 [arrange-act-assert]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使用 Rhino Mocks 框架在 AAA 语法中编写这个简单的测试?
如何使用 Rhino Mocks 框架在 AAA 语法中编写这个简单的基于 Record-and-replay 的测试?
c# - 使用 Mocks 验证依赖调用时的 TDD Arrange Act Assert 模式
我Moq
用来测试一些 void 方法的行为。MockBehaviour.Strict
必须在Arrange
步骤中指定使用对模拟的每个调用。这导致许多测试没有任何Assert
(或验证)步骤。通过条件只是测试运行没有引发异常。我错过了什么吗?Arrange, Act, Assert
使用严格的模拟时模式是否不合适?是否有更语义化的方式来布局这些测试?
一个简单的例子......
c# - 单元测试AAA模式中的数据提取
在“AAA”模式中,应该在哪里写入行为数据的提取?
在 Act 或 Assert 部分?
考虑这个单元测试,提取两个人,它应该在示例中的 Act 中还是在 Assert 中?我们想为公司所有的 UT 制定一个标准。
(请忽略在我可以编写的这个简单测试中Assert.AreEqual(p1.Id, result[0].Id);
)
我知道这不是一个大问题,但我仍然想知道如何将事情做得最好。
.net - Rhino Mocks:AssertNotCalled(加载时除外)
我有一个在创建我正在测试的对象时被调用的依赖项。但是,在此之后永远不应调用它。我将如何编写这样的测试?
我想把这条线作为我的测试(因为我试图遵循 AAA 的测试写作风格)。但是,此断言将失败,因为Publish
在设置期间调用了该方法。
有没有办法“重置”我嘲笑的依赖项的调用?
注意:我可以设置它,以便Message
在初始化后检查参数的属性以获得我期望的值,但这会使我的测试更加脆弱/脆弱,如果可能的话,我想避免它。
c# - 在集成测试中使用 Arrange Act Assert 模式
考虑到这是对我的数据库的集成测试,使用 Arrange Act 断言 Arrange “部分”中应该包含什么?
rhino-mocks - Rhino Mock AAA 期待中的期待
是否可以使用 Rhino Mock AAA 语法模拟以下情况:
但是,我需要传递这个期望,而不是 .Is.NotNull 约束:
我知道这可能看起来有点奇怪,但是让我们说 ExecuteFoo 是至关重要的,它必须像这样完成。
unit-testing - 安排法案断言替代方案
一般的问题是AAA 是否有用于单元测试的替代模式?如果是的话,看看一些例子并了解它们的优缺点会非常有趣。
并且作为 AAA 测试的最简单示例(在 c# 中,为简单起见使用 var):
c# - 什么时候可以对类似的单元测试进行分组?
我正在为一个简单的 IsBoolean(x) 函数编写单元测试,以测试一个值是否为布尔值。我要测试 16 个不同的值。
如果我不将它们分解为单独的单元测试,并按如下方式一起运行它们,我会被烧死,还是被 .NET 编程社区无情地嘲笑(这会更糟?):
我问这个是因为我一直在阅读的“最佳实践”会要求我执行以下操作:
对于 50 多个函数和 500 多个值,我将对此进行测试似乎完全是浪费时间....但这是最佳实践!!!!!!
-布伦丹
rhino-mocks - 清除模拟的通话记录
问题:是否可以清除模拟(或存根)的调用历史?
(并且对于通话记录,我并不是指预期/记录的行为。)
详细信息:
我目前希望使用 NUnit 和 Rhino 模拟根据 AAA 语法编写带有测试的以下代码。
为了可读性,我总是尝试将 Assert 部分中的调用集中在 Act 部分中发生的更改上。
但是,此测试中的安排部分包含影响 mockA 调用历史的(必需)操作。
结果断言失败。
我知道我可以使用下面的构造来捕捉呼叫历史记录中的“变化”,但这会降低该测试的预期行为的可读性。
我的问题:是否可以清除模拟的通话记录(未记录的期望)?