- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了 100% 覆盖我的 Saga 文件,我正在研究如何测试观察者。
我一直在谷歌搜索,关于如何测试观察者有几个答案。也就是说,saga 做了一个 takeEvery
或 takeLatest
.
然而,所有的测试方法似乎基本上都是复制实现。那么,如果它是相同的,那么编写测试有什么意义呢?
示例:
// saga.js
import { delay } from 'redux-saga'
import { takeEvery, call, put } from 'redux-saga/effects'
import { FETCH_RESULTS, FETCH_COMPLETE } from './actions'
import mockResults from './tests/results.mock'
export function* fetchResults () {
yield call(delay, 1000)
yield put({ type: FETCH_COMPLETE, mockResults })
}
export function* watchFetchResults () {
yield takeEvery(FETCH_RESULTS, fetchResults)
}
import { takeEvery } from 'redux-saga/effects'
import { watchFetchResults, fetchResults } from '../sagas'
import { FETCH_RESULTS } from '../actions'
describe('watchFetchResults()', () => {
const gen = watchFetchResults()
// exactly the same as implementation
const expected = takeEvery(FETCH_RESULTS, fetchResults)
const actual = gen.next().value
it('Should fire on FETCH_RESULTS', () => {
expect(actual).toEqual(expected)
})
})
import testSaga from 'redux-saga-test-plan'
import { watchFetchResults, fetchResults } from '../sagas'
import { FETCH_RESULTS } from '../actions'
it('fire on FETCH_RESULTS', () => {
testSaga(watchFetchResults)
.next()
.takeEvery(FETCH_RESULTS, fetchResults)
.finish()
.isDone()
})
watchFestchResults
获取每个 FETCH_RESULTS。或者甚至只有它会触发
takeEvery()
.不管后续如何。
最佳答案
听起来测试它们的目的是实现 100% 的测试覆盖率。
有些东西可以进行单元测试,但是否应该进行单元测试是有问题的。
在我看来,这种情况可能更适合进行“集成”测试。不是简单地测试单个方法,而是测试几种方法如何作为一个整体一起工作的东西。也许您可以调用一个操作来触发使用您的 saga 的 reducer ,然后检查存储中的结果更改?这比单独测试传奇更有意义。
关于unit-testing - 单元测试 redux-saga watchers 的意义何在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42624587/
我正在尝试使用松弛配置ES通知。这就是我要在elasticsearch.yml中使用的内容,它来自elasticsearch网站上的文档。 xpack.notification.slack: ac
我正在尝试配置 Elasticsearch Watcher Watch 以提醒某些消息,但我无法让我的搜索输入正常工作。 我尝试同时使用 Sense 和 elasticsearch-watcher-p
您好,我实现了一个 java 文件观察器,它在创建文件时读取文件。 它在开发机器上运行良好。我创建了一些文件并通过日志调用了 ENTRY_CREATE,我的程序按预期读取了这些文件。不调用 ENTRY
记住 ng-change,我想看看如何为输入字段编写基本的监视函数。 如何将 watch 应用到以下输入字段作为示例? Col Row 最佳答案 那里有 2
我有一个包含两个编辑文本的 Activity ,并且在该 Activity 中有一个单独实现的 TextWatcher。我想制作一个实现 TextWatcher 和该编辑文本中的 TextWatche
本文整理了Java中mage.watchers.common.ZuberasDiedWatcher类的一些代码示例,展示了ZuberasDiedWatcher类的具体用法。这些代码示例主要来源于Git
在 GWT Stock Watch 教程中,它似乎每 4 秒轮询一次服务器以获取新数据。这是 GWT 的标准工作方式还是可以使用推送类型技术,以便在服务器上引发新事件时调用客户端代码? 最佳答案 这是
我在 WebStorms 中使用 Less.css File Watcher,我想排除特定文件进行编译。 我有一个包含所有其他 CSS 的 style.less 文件,应该只编译这个文件。我怎样才能做
我正在尝试使用以下条件在 Elasticsearch 中创建 watch : 字段“ht”必须小于 100 字段“sv”不能是“tier1”,字段“rv”可以是其他任何内容。 字段“sv”不得为“ti
我正在使用 angularjs 并且需要找到 ng-repeat 的 watch ,因为我需要 ng-repeat 从特定点停止工作。这是我的代码: {{item.name}}
我过去使用过 UiAutomator。它不会做我现在需要的,所以我正在使用 Espresso .我喜欢 UiAutomator 的一件事是能够创建 UiWatcher。我有很多随机出现的对话框。 所以
我写了一个 c# 代码来获取我的粗略位置。 该程序将在没有 GPS 传感器的笔记本电脑上运行。 namespace WindowsFormsApplication1 { class Class
我使用的是一个开发不良的应用程序,由于内存泄漏或其他随机错误而不断重新启动,这些错误在重新启动时不会重复。我无权访问代码,也无法修复它。 我开发了一个 c# 应用程序来管理重启并在程序停止时保持程序运
本文整理了Java中me.libraryaddict.disguise.disguisetypes.watchers.ZombieVillagerWatcher类的一些代码示例,展示了ZombieVi
在webstorm中编译coffeescript文件后如何自动缩小javascript输出文件? 更新: 我打算将 UglifyJS 或 YUI Compressor 与 File Watcher 一
任何人都知道如何在汇总观察器触发时运行代码?我看到了一些关于捕获观察者事件的引用,例如“开始”,但我使用的是 rollup.config.js 文件,我不知道在哪里以及如何检查此类事件。仅供引用,我正
我们有一个应用服务在 Azure 网关和 Azure WAF 后面运行。应用服务连接 2 个 API 一个 API 正在 Azure 虚拟机中运行 另一个 API 正在另一个应用服务中运行 我们可以使
我想将组件之间的一些变量存储在全局窗口对象中,所以我这样做 window.showFilters = !window.showFilters 在组件中,我尝试在窗口对象上使用观察程序,例如 watch
我有一个 AngularJS 应用程序,用于动态构建页面(从服务器检索 XML 并通过读取 XML 构建页面或表单),对于 XML,我们必须构建几个页面,所有页面都彼此相关,并且可以通过以下方式为负数
如何将 Elasticsearch Watcher 的每个事件限制为一个警报。如果日志中显示错误,观察者将触发直到得到确认。 我只想要新错误的警报而不是时间限制。 最佳答案 我已经找到了解决这个问题的
我是一名优秀的程序员,十分优秀!