flutter
dart
mockito
What you want to do and what you can't do
Currently, when testing the return value of method A, we are trying to mock the return value of method B in method A.
For the time being, if the return value of method B executed in method A is used as an argument, it can be tested without being mocked, but I don't want to do this solution because it changes the existing code.
//sample.dart
US>class Sample {
inta(){
return b()+4;
}
intb(){
return3;
// Usually seven.
// If it's mocking test.
}
}
//sample_test.dart
import 'package: sellca_pad_3/models/sample.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import'sample_test.mocks.dart';
@GenerateMocks ([Sample])
void main() {
test('Test Mock',(){
final mockSample=MockSample();
when(mockSample.b()) .thenReturn(5);
final sample=Sample();
final addResult=sample.a();
expect(addResult, 9);
});
}
Expectations and Actual Values for the Results of this Test
Expected value: 9
Actual value: 7
In when(mockSample.b()) .thenReturn(5);
I wanted to change the return value of method b from 3 to 5, so that the return value of method a is from method b's return value (3)+4 to method b's mocked return value (5)+4 to 9, but the unmocked method b is returned in method a.
If you have any advice to solve this problem, please give me some advice.
I think the code I gave you is incomplete, but I put the mock function in the code I gave you, but I don't use it.
Very simple, I created a new instance of Sample with this code, which has nothing to do with the mock.
final sample=Sample();
© 2024 OneMinuteCode. All rights reserved.