mik*_*ana 12 javascript testing jestjs
expect.stringContaining()是否可以在 Jest 块内使用.toHaveBeenCalledWith()?
我目前正在使用:
expect(createChatRoomMock).toHaveBeenCalledWith({
creatorId: expect.stringContaining("user_"),
chatRoomUuid: expect.stringContaining("chatRoom_"),
});
Run Code Online (Sandbox Code Playgroud)
但这失败了:
- Expected
+ Received
Object {
- "chatRoomUuid": StringContaining "chatRoom_",
- "creatorId": StringContaining "user_",
+ "chatRoomUuid": "chatRoom_sZ9nj4hC46e4bGz4PjYzpC",
+ "creatorId": "user_nCQsasvYirUwwoEr3j8HsC",
},
Run Code Online (Sandbox Code Playgroud)
这很奇怪,正如您从错误中看到的那样,收到的字符串与预期相匹配
我也尝试过:
expect(createChatRoomMock).toHaveBeenCalledWith({
creatorId: expect.stringMatching(/user_.*/),
chatRoomUuid: expect.stringMatching(/chatRoom_.*/),
});
Run Code Online (Sandbox Code Playgroud)
结果与上图相同。
如何expect.stringContaining()在 Jest.toHaveBeenCalledWith()块内使用?
mik*_*ana 10
这是玩笑中的一个错误。如果测试中有任何其他内容失败,Jest 会将这些显示为失败,即使它们会通过,例如:
it.only("Test", () => {
var createChatRoomMock = jest.fn();
createChatRoomMock({
"chatRoomUuid": "chatRoom_sZ9nj4hC46e4bGz4PjYzpC",
"creatorId": "user_nCQsasvYirUwwoEr3j8HsC",
"somethingElse": "bad"
});
expect(createChatRoomMock).toHaveBeenCalledWith({
creatorId: expect.stringContaining("user_"),
chatRoomUuid: expect.stringContaining("chatRoom_"),
somethingElse: expect.stringContaining("good")
});
});
Run Code Online (Sandbox Code Playgroud)
将(不准确地)表明对方.toHaveBeenCalledWith()失败了:
- Expected
+ Received
Object {
- "chatRoomUuid": StringContaining "chatRoom_",
- "creatorId": StringContaining "user_",
- "somethingElse": StringContaining "good",
+ "chatRoomUuid": "chatRoom_sZ9nj4hC46e4bGz4PjYzpC",
+ "creatorId": "user_nCQsasvYirUwwoEr3j8HsC",
+ "somethingElse": "bad",
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9811 次 |
| 最近记录: |