我一直在注意。没有可辨别的模式,有时我会运行我的mocha测试并获得失败的断言。然后我立即再次运行它。没有做任何改变,断言全部通过。有什么东西我做错了。是否有缓存的测试数据?
我很遗憾不知道要发布什么,因为我似乎无法将其归结为任何一件事,但这里有一个我见过的功能
mysqltest.js
describe('get_tablet_station_name', function() {
it ('isSuccessful', function() {
mysqlDao.init();
var callback = sinon.spy();
mysqlDao.get_tablet_station_name(state.TABLET_NAME, function(err, result) {
assert(err == undefined)
});
});
it ('isUnsuccessful', function() {
mysqlDao.init();
var callback = sinon.spy();
mysqlDao.get_tablet_station_name("'''%\0", function(err, result) {
assert(err != undefined);
});
});
});
当断言失败时,它是
assert(err != undefined);
尽管SQL语句错误,但错误仍返回null。
答案 0 :(得分:0)
当测试用例失败时,您应该分享您获得的错误。
但是从你描述的代码和问题来看,我猜你的mysql调用必须花费的时间大于mocha测试用例的默认超时。在第二次运行测试用例时,mysql必须从缓存中返回数据,从而防止超时。
要调试尝试增加测试用例的默认超时,并在内部使用,请描述call - >
describe('get_tablet_station_name', function() {
this.timeout(10000);
......//rest of the code
请注意这可能不是解决方案,请说明如果上述事情不起作用,断言失败的原因。