Code refactor
diff --git a/lib/src/benchmark_base.dart b/lib/src/benchmark_base.dart
index c3be399..f741da6 100644
--- a/lib/src/benchmark_base.dart
+++ b/lib/src/benchmark_base.dart
@@ -7,8 +7,10 @@
final ScoreEmitter emitter;
// Empty constructor.
- const BenchmarkBase(String name, { ScoreEmitter emitter }) : this.name = name,
- this.emitter = emitter;
+ const BenchmarkBase(String name,
+ { ScoreEmitter emitter: const PrintEmitter() })
+ : this.name = name,
+ this.emitter = emitter;
// The benchmark code.
// This function is not used, if both [warmup] and [exercise] are overwritten.
@@ -60,11 +62,7 @@
}
void report() {
- double score = measure();
- print("$name(RunTime): $score us.");
- if( emitter != null ) {
- emitter.emit(name, score);
- }
+ emitter.emit(name, measure());
}
}
diff --git a/lib/src/score_emitter.dart b/lib/src/score_emitter.dart
index 919b97a..0e8af2d 100644
--- a/lib/src/score_emitter.dart
+++ b/lib/src/score_emitter.dart
@@ -1,7 +1,13 @@
part of benchmark_harness;
abstract class ScoreEmitter {
-
void emit(String testName, double value);
+}
+class PrintEmitter implements ScoreEmitter {
+ const PrintEmitter();
+
+ void emit(String testName, double value) {
+ print("$testName(RunTime): $value us.");
+ }
}
\ No newline at end of file
diff --git a/pubspec.yaml b/pubspec.yaml
index 2330e34..db341d0 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -7,4 +7,3 @@
browser: any
dev_dependencies:
unittest: any
- di: 0.0.32
diff --git a/test/result_emitter_test.dart b/test/result_emitter_test.dart
index e50f1c7..4975835 100644
--- a/test/result_emitter_test.dart
+++ b/test/result_emitter_test.dart
@@ -2,8 +2,6 @@
import 'fixed-unittest.dart';
import 'package:unittest/mock.dart';
-import 'package:di/di.dart';
-import 'package:di/dynamic_injector.dart';
import 'package:benchmark_harness/benchmark_harness.dart';
@@ -34,17 +32,6 @@
void teardown() { }
}
-// Create a new benchmark which has no emitter
-class BenchmarkWithoutResultEmitter extends BenchmarkBase {
- const BenchmarkWithoutResultEmitter() : super("Template");
-
- void run() { }
-
- void setup() { }
-
- void teardown() { }
-}
-
benchmarkHarnessTest() {
MockResultEmitter createMockEmitter() {
MockResultEmitter emitter = new MockResultEmitter();
@@ -54,26 +41,9 @@
describe('ResultEmitter', () {
it('should be called when emitter is provided', () {
MockResultEmitter emitter = createMockEmitter();
- Module module = new Module()..value(ScoreEmitter, emitter )
- ..type(BenchmarkWithResultEmitter);
- Injector i = new DynamicInjector(modules: [module]);
-
- var testBenchmark = i.get(BenchmarkWithResultEmitter);
+ var testBenchmark = new BenchmarkWithResultEmitter(emitter);
testBenchmark.report();
emitter.getLogs(callsTo('emit')).verify(happenedOnce);
});
});
-
- describe('ResultEmitter', () {
- it('should not be called when emitter is not provided', () {
- MockResultEmitter emitter = createMockEmitter();
- Module module = new Module()..value(ScoreEmitter, emitter )
- ..type(BenchmarkWithoutResultEmitter);
- Injector i = new DynamicInjector(modules: [module]);
-
- var testBenchmark = i.get(BenchmarkWithoutResultEmitter);
- testBenchmark.report();
- emitter.getLogs(callsTo('emit')).verify(neverHappened);
- });
- });
}
\ No newline at end of file