小编J.r*_*nge的帖子

如何使用 Chai 和 Mocha 测试嵌套对象?

我正在使用 mocha、chai 和 chai-http 为我的 Node.js 和 Express 应用程序进行集成测试。我正在尝试测试我的登录路由是否有令牌。我尝试了不同的断言来检查数据对象内部是否存在令牌,但它们都不起作用。

来自 Postman 的数据如下所示:

{
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NiwiaWF0IjoxNTYzODczMzE3LCJleHAiOjE1NjM5NTk3MTd9.bM1RFem2pnlEqjTWGhg-s4Am1PjGNRUS_8x5Dq8J6lI",
    "user": {
      "id": 6,
      "firstName": "John",
      "lastName": "Doe",
      "email": "test@test.com",
      "createdAt": "2019-07-23T06:38:11.358Z",
      "updatedAt": "2019-07-23T06:38:11.358Z"
    }
  },
  "hasErrors": false,
  "errors": []
}
Run Code Online (Sandbox Code Playgroud)

这是我的实际测试,我试图检查 res.body 是否在数据对象内嵌套了令牌。

/* Login Test */
let credentials = {
  'email': 'adnan@test.com',
  'password': 'test'
};

describe("POST /user-sessions", function() {
  it("should login user", function(done) {
    chai.request('http://localhost:3000')
      .post("/user-sessions")
      .send(credentials) 
      .end((err, res) => {
        res.should.have.status(200);

        res.body.should.have.nested.property('data.token');
        done();
      })
  });
})
Run Code Online (Sandbox Code Playgroud)

我收到 Uncaught AssertionError: Expected …

mocha.js chai chai-http

3
推荐指数
1
解决办法
4744
查看次数

从清单中删除一项

我正在使用FlatList显示数据列表。我尝试了数十个示例,如何从数据中删除一行,但找不到正确的解决方案。

现在,我要从状态中删除所有数据,但是我只想删除一项。

这是我的HomeScreen,它显示数据列表:

class HomeScreen extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      data: data.products
    };
  }

  static navigationOptions = {
    title: "Products"
  };

  keyExtractor = (item, index) => item.id;

  openDetails = data => {
    this.props.navigation.navigate("Details", {
      data
    });
  };

  deleteItem = data => {
    this.setState({ data: ''})
  }

  renderProduct = ({ item, index }) => {
    return (
      <Item
        itemTitle={item.title}
        openDetails={() => this.openDetails(item)}
        itemUrl={item.imageUrl}
        data={this.state.data}
        deleteItem={() => this.deleteItem(item)}
      />
    );
  };

  render() {
    return (
      <FlatList
        data={this.state.data}
        renderItem={this.renderProduct} …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native react-native-flatlist

1
推荐指数
1
解决办法
2441
查看次数