我有一个reactjs组件,并且该组件中有一个函数。我想为它编写单元测试用例。以下是我的单元测试用例。函数名是getNewGroupName使用karma和Jasmine的reactjs中组件的单元测试功能
describe("CreateGroupName component",() => {
it("Correct Copy name should be generated for first copy",() => {
component = ReactTestUtils.renderIntoDocument(< CreateGroupName reactor = {
reactor
} > < /CreateGroupName>);
expect(component.getNewGroupName("SampleGroupName")).tobe("SampleGroupName - Copy(1)")
});
});
但是当我运行单元测试用例我得到以下错误
类型错误:不确定是不是(评估“e.getNewGroupName(‘SampleGroupName’)”)构造
使用调试器查看对象后,我只能看到该对象的下面的属性。
我也尝试过使用酶文库上述测试写入。但是两者在结果中都给了我相同的对象。
it("Correct Copy name should be generated for first copy",() => {
const wrapper = enzyme.mount(<CreateGroupName reactor={reactor}></CreateGroupName>);
const inst = wrapper.instance();
expect(inst.getNewGroupName('SampleGroupName')).toBe("SampleGroupName - Copy(1)");
});
这是我的部件
堆栈跟踪是如下
"TypeError: t.getNewGroupName is not a function
at Object.<anonymous> (http://localhost:9876/base/app/spec/webpack.loader.js:96:18873)
at attemptSync (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1886:24)
at QueueRunner.run (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1874:9)
at QueueRunner.execute (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1859:10)
at Spec.queueRunnerFactory (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:697:35)
at Spec.execute (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:359:10)
at Object.fn (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:2479:37)
at attemptAsync (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1916:24)
at QueueRunner.run (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1871:9)
at http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1898:16"
CreateGroupName组件是什么样子的?这通常发生在没有正确返回某些东西时。 –
'.toBe()'而不是'.tobe()'怎么办? –
我纠正了这个问题,但仍然无法正常工作 – Sachin