我正在尝试测试这个功能
UserApi createUserApi(String url, String username, String password) {
UserApi userApi = new UserApi(base: route(url), serializers: repo);
userApi.base.basicAuth('$username', '$password');
return userApi;
}
基本上,测试是将此函数的结果与它的“手动组合”进行比较,期望得到相同的结果。但事实并非如此:
String username = "asd";
String password = "asd";
UserApi userApiTest = new UserApi(base: route("asd"), serializers: repo);
userApiTest.base.basicAuth('$username', '$password');
test("UserApi creation", () {
UserApi userApi = _presenter.createUserApi("asd", "asd", "asd");
expect(userApi, userApiTest);
});
结果总是:
Expected: <Instance of 'UserApi'>
Actual: <Instance of 'UserApi'>
为什么不同?在调试中,每个属性都是相同的。
最佳答案
您有两个不同的 UserApi
实例。它们具有相同的属性值并不能使它们相等。
您需要实现 hashCode
和 operator==
。
默认情况下,只有比较对同一对象实例的引用才被认为是相等的(因为它们是相同的)
另见
关于unit-testing - flutter :测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52602935/