首页 男生 其他 深入浅出React和Redux

8.3.1 action构造函数测试

深入浅出React和Redux 程墨 2139 2021-04-06 02:29

  您可以在百度里搜索“深入浅出React和Redux 艾草文学(www.321553.xyz)”查找最新章节!

  

  8.3.1 action构造函数测试

  普通的action构造函数是很简单的单元测试,简单到往往让开发者觉得很无聊。

  对应于第5章的todo_with_selector/src/todos/actions.js的单元测试代码,存放在文件todo_with_selector/test/todos/actions.test.js中,首先看测试套件的组织,代码如下:

  describe('todos/actions', () => {

  describe('addTodo', () => {

  //在这里添加it测试用例

  });

  });

  因为测试目标是todos功能模块的action构造函数,最顶层的describe名为“todos/actions”,不过todos包含addTodo、toggleTodo和removeTodo这些action构造函数。为了便于阅读,我们为每一个构造函数单独创建一个describe测试套件。

  接下来我们看看针对addTodo的测试用例,首先需要验证addTodo函数执行返回的结果是预期的对象,代码如下:

  it('should create an action to add todo', () => {

  const text = 'first todo';

  const action = addTodo(text);

  expect(action.text).toBe(text);

  expect(action.completed).toBe(false);

  expect(action.type).toBe(actionTypes.ADD_TODO);

  });

  多次调用addTodo函数返回的对象具有一样的内容,只有id值是不同的,因为每一个新创建的待办事项都要有唯一的id,对应的单元测试代码如下:

  it('should have different id for different actions', () => {

  const text = 'first todo';

  const action1 = addTodo(text);

  const action2 = addTodo(text);

  expect(action1.id !== action2.id).toBe(true);

  });

  从上面代码可以看出单元测试的基本套路如下:

  1)预设参数;

  2)调用纯函数;

  3)用expect验证纯函数的返回结果。 深入浅出React和Redux

目录
设置
手机
书架
书页
评论