php - 如何在 Zend Framework 中使用 PHPUnit 测试变量

标签 php unit-testing zend-framework phpunit

好吧,也许我没搞清楚。我是单元测试的新手。 但我想测试这样的东西:

我有一个操作,显示用户当天要执行的操作。 我想做出断言来检查是否: 如果有 0 张门票,则消息显示“今天没有门票”,如果有 > 0 张门票,则系统显示表格。 我知道如何检查 View 是否呈现消息或呈现表格,但如何在测试中创建“if”?像这样的东西:

<code>
if(count($tickets > 0) {
 $this->assertQuery('table');
} else {
 $this->assertQueryContentContains('#message', 'No tickets for today');
}
</code>

我不知道如何制作 stub 数据或从操作中获取某个变量的值。

最佳答案

单元测试中不应该有任何逻辑。单元测试中逻辑的问题在于它通常反射(reflect)了被测试代码段的逻辑,这几乎破坏了单元测试的目的。

相反,您希望为每个测试模拟条件(在您的情况下,您至少需要两个)并验证是否满足测试的期望。除非 $tickets 检索是复杂的过程(然后应该对其进行模拟),否则模拟您的情况下的条件只需将 $tickets 设置为适当的值即可。

关于php - 如何在 Zend Framework 中使用 PHPUnit 测试变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9253505/

相关文章:

unit-testing - Gomega 是否可以支持验证不同类型的多个返回值,其中最后一个不是 `error` ?

php - Zend 框架操作堆栈替代方案

php - 解析错误:语法错误,/etc/zabbix/web/zabbix.conf.php中第24行的意外 ';'

php - 搜索引擎是否对 somesite.com/index.php?page=photos 这样的网址有问题

unit-testing - Angularjs 将 $resource 注入(inject)工厂以使用 jasmine 进行测试

javascript - 使用 zend 框架更新 body 标签中的 javascript

javascript - scrollIntoView 和焦点问题

php - 点火器 |获取上一个 URL 并用作上一页的后退按钮

php - 如何确定 AJAX 应用程序的哪一部分导致速度变慢?

android - 使用 dagger2 进行 Robolectric 测试 Activity