I am having problems writing a test. In general, all method calls inside of expect() fail with NullError. The same methods can be successfully called outside of expect(). Here is my main() method:
...
import 'package:unittest/unittest.dart';
import 'package:unittest/html_config.dart';
void main() {
useHtmlConfiguration();
test('URL connection is Ok for${repositoryURL} ', (){
var httpRequest = new HttpRequest();
expect(httpRequest.open('POST', repositoryURL), returnsNormally, reason:"httpRequestOpen for ${repositoryURL} threw exception");
});
// httpRequest.open('POST', repositoryURL); // Works if not within the expect
test('Repositories request is sent',(){
expect (sendRepositoryListRequest(), returnsNormally, reason:"sendRepositoryListRequest threw exception");
});
//sendRepositoryListRequest(); // works if not within the expect
Browser output:
FAIL 1 FAIL Expectation: URL connection is Ok for../ServiceDirect/getRepositories .
Expected: return normally Actual: <null> Which: threw W0: <NullError: Cannot call "call$0" on null>
httpRequestOpen for ../ServiceDirect/getRepositories threw exception
documentviewertest.dart.js 1224:3 dart.b
documentviewertest.dart.js 7665:20 Gc.Is.JX
documentviewertest.dart.js 7637:25 kw.xu
documentviewertest.dart.js 7985:3 dart.vd
documentviewertest.dart.js 6792:22 QA.call$0
documentviewertest.dart.js 7776:30 c9.Sp
documentviewertest.dart.js 7840:10 Rm.call$1
documentviewertest.dart.js 2510:34 vs.GP
documentviewertest.dart.js 2643:25 jb.call$0
documentviewertest.dart.js 2456:26 T8
2 FAIL Expectation: Repositories request is sent.
Expected: return normally Actual: <null> Which: threw W0: <NullError: Cannot call "call$0" on null>
sendRepositoryListRequest threw exception
documentviewertest.dart.js 1224:3 dart.b
documentviewertest.dart.js 7665:20 Gc.Is.JX
documentviewertest.dart.js 7637:25 kw.xu
documentviewertest.dart.js 7985:3 dart.vd
documentviewertest.dart.js 6796:22 Cv.call$0
documentviewertest.dart.js 7776:30 c9.Sp
documentviewertest.dart.js 7840:10 Rm.call$1
documentviewertest.dart.js 2510:34 vs.GP
documentviewertest.dart.js 2643:25 jb.call$0
documentviewertest.dart.js 2456:26 T8
Total 0 passed, 2 failed 0 errors
Output when running in DART (not browser)
unittest-suite-wait-for-done
FAIL: Testing URL connection for../ServiceDirect/getRepositories
Expected: return normally
Actual: <null>
Which: threw NoSuchMethodError:<The null object does not have a method 'call'.
NoSuchMethodError : method not found: 'call'
Receiver: null
Arguments: []>
httpRequestOpen for ../ServiceDirect/getRepositories threw exception
package:unittest/src/simple_configuration.dart 137:7 SimpleConfiguration.onExpectFailure
package:unittest/src/simple_configuration.dart 15:28 _ExpectFailureHandler.fail
package:unittest/src/expect.dart 117:9 DefaultFailureHandler.failMatch
package:unittest/src/expect.dart 75:29 expect
documentviewertest.dart 606:13 main.<fn>
package:unittest/src/test_case.dart 111:31 _run.<fn>
dart:async/future_impl.dart 453 _Future._propagateToListeners.<fn>
dart:async/zone.dart 683 _rootRun
dart:async/zone.dart 417 _ZoneDelegate.run
dart:async/zone.dart 627 _CustomizedZone.run
dart:async/future_impl.dart 445 _Future._propagateToListeners
dart:async/future_impl.dart 303 _Future._complete
dart:async/future_impl.dart 354 _Future._asyncComplete.<fn>
dart:async/zone.dart 688 _rootRun
dart:async/zone.dart 417 _ZoneDelegate.run
dart:async/zone.dart 627 _CustomizedZone.run
dart:async/zone.dart 538 _BaseZone.runGuarded
dart:async/zone.dart 563 _BaseZone.bindCallback.<fn>
dart:async/schedule_microtask.dart 18 _asyncRunCallback
file:///E:/b/build/slave/dartium-win-full-stable/build/src/dart/tools/dom/src/native_DOMImplementation.dart 604 _handleMutation
FAIL: Repositories request is sent
Expected: return normally
Actual: <null>
Which: threw NoSuchMethodError:<The null object does not have a method 'call'.
NoSuchMethodError : method not found: 'call'
Receiver: null
Arguments: []>
*** sendRepositoryListRequest threw exception ***
package:unittest/src/simple_configuration.dart 137:7 SimpleConfiguration.onExpectFailure
package:unittest/src/simple_configuration.dart 15:28 _ExpectFailureHandler.fail
package:unittest/src/expect.dart 117:9 DefaultFailureHandler.failMatch
package:unittest/src/expect.dart 75:29 expect
documentviewertest.dart 613:14 main.<fn>
package:unittest/src/test_case.dart 111:31 _run.<fn>
dart:async/future_impl.dart 453 _Future._propagateToListeners.<fn>
dart:async/zone.dart 683 _rootRun
dart:async/zone.dart 417 _ZoneDelegate.run
dart:async/zone.dart 627 _CustomizedZone.run
dart:async/future_impl.dart 445 _Future._propagateToListeners
dart:async/future_impl.dart 303 _Future._complete
dart:async/future_impl.dart 354 _Future._asyncComplete.<fn>
dart:async/zone.dart 688 _rootRun
dart:async/zone.dart 417 _ZoneDelegate.run
dart:async/zone.dart 627 _CustomizedZone.run
dart:async/zone.dart 538 _BaseZone.runGuarded
dart:async/zone.dart 563 _BaseZone.bindCallback.<fn>
dart:async/schedule_microtask.dart 18 _asyncRunCallback
file:///E:/b/build/slave/dartium-win-full-stable/build/src/dart/tools/dom/src/native_DOMImplementation.dart 604 _handleMutation
0 PASSED, 2 FAILED, 0 ERRORS
Exception: Exception: Some tests failed.
SimpleConfiguration.onDone (package:unittest/src/simple_configuration.dart:209:9)
_completeTests@0x398acc1e (package:unittest/unittest.dart:663:17)
_runTest@0x398acc1e (package:unittest/unittest.dart:612:19)
_nextTestCase@0x398acc1e (package:unittest/unittest.dart:532:11)
Thank you, Yuri.