Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用';toHaveClass';开玩笑地匹配子字符串?_Javascript_Reactjs_Jestjs_Material Ui_React Testing Library - Fatal编程技术网

Javascript 如何使用';toHaveClass';开玩笑地匹配子字符串?

Javascript 如何使用';toHaveClass';开玩笑地匹配子字符串?,javascript,reactjs,jestjs,material-ui,react-testing-library,Javascript,Reactjs,Jestjs,Material Ui,React Testing Library,有一个元素我给它上了一堂课success。但是React Mui在DoM上附加了一个文本,比如说Mui AbcXYZ success。所以当我这么做的时候 expect(getByTestId('thirdCheck')).toHaveClass(“success”) 我没有通过此测试,因为它期望完整的名称mui AbcXYZ success。只有当我提供了确切的名称时,我才能通过这个测试(使用带有连字符的文本和mui添加的随机数) 我如何测试它 我尝试了以下操作,但没有结果: expect(g

有一个元素我给它上了一堂课
success
。但是React Mui在DoM上附加了一个文本,比如说
Mui AbcXYZ success
。所以当我这么做的时候

expect(getByTestId('thirdCheck')).toHaveClass(“success”)

我没有通过此测试,因为它期望完整的名称
mui AbcXYZ success
。只有当我提供了确切的名称时,我才能通过这个测试(使用带有连字符的文本和mui添加的随机数)

我如何测试它

我尝试了以下操作,但没有结果:
expect(getByTestId('thirdCheck')).toHaveClass(/success/)


我也尝试过应用
.className
.classList
,但这并没有给出元素上的类列表。

在经历了数小时的挫折后,我就是这样做的,如果有更好的解决方案,请随时发布。我会接受的

      let classes = getByTestId('thirdCheck').getAttribute('class'); //returns something like "Mui-root mui-AbcXYZ-success"
        classes=classes.split(' ')[1].split('-'); //first split is to split on the basis of spaces and the second one to do on the bases of hyphen
        expect(classes.includes('success'));
对于一件琐碎的事情来说,看起来有点冗长。但我就是这样做的