这个问题与sendData的HTTPRequest.request有点重复,似乎无法让它工作,但我现在有了更多的信息.这里的目标是发送附加了查询参数的GET请求.我最初试图发送我的请求:
HttpRequest request = new HttpRequest();
request.open("GET", _url, async:true);
request.onError.listen(_onLoadError, onError: _onLoadError);
request.send(sendData);
Run Code Online (Sandbox Code Playgroud)
其中sendData是一个遵循查询参数的正常格式的字符串(?myVariable = 2&myOtherVariable = a等),因为这是最终的目标.请求被发送,但我从未在任何监视工具(我使用Charles)中看到任何其他数据(sendData).然后我尝试了:
HttpRequest request = new HttpRequest();
request.open("GET", _url + sendData, async:true);
request.onError.listen(_onLoadError, onError: _onLoadError);
request.send();
Run Code Online (Sandbox Code Playgroud)
所以现在我只是将查询字符串附加到url本身.这按预期工作,但远非优雅.有更好的解决方案吗?
以下示例失败:
FAIL: MyClass tests getClassReturnsConstructorForDouble
Expected: ?:<double>
Actual: ?:<double>
Run Code Online (Sandbox Code Playgroud)
例:
test("getClassReturnsConstructorForDouble", () {
double object = 10.1;
Type objectClass = reflect(object).type.reflectedType;
expect(objectClass, equals(object.runtimeType));
});
Run Code Online (Sandbox Code Playgroud)
是否无法准确反映int/double类型?
就像标题所说:如果你有一个存储在变量中的Type,就我所知,没有办法将你的实际对象与这个类型的变量进行比较.我可以完成我正在尝试用镜子做的事情,但我不愿意,如果可能的话.
void example() {
Type myType = String;
String myExample = "Example";
//Syntax error here: The name 'myType' is not a type and cannot be used in an 'is' expression
if (myExample is myType) {
}
}
Run Code Online (Sandbox Code Playgroud) 诚然,这是一个有点奇怪的测试用例,但这是我遇到的一个问题。我有一个类,它在其构造函数中将函数作为参数。我想知道是否调用了传递的函数。下面是一个例子:
class TestClassMock extends Mock implements RealClass {
RealClass _real;
TestClassMock() {
_real = new RealClass();
when(callsTo("myNamedFunction")).alwaysCall(_real.myNamedFunction);
}
}
class RealClass {
String _name = "RealClass";
Function myNamedFunction;
RealClass() {
myNamedFunction = _theNamedFunction;
}
String _theNamedFunction() {
return _name;
}
}
class ClassThatCallsRealClass {
ClassThatCallsRealClass(Function func) {
func();
}
}
//The test
TestClassMock testClassMock = new TestClassMock();
ClassThatCallsRealClass caller = new ClassThatCallsRealClass(testClassMock.myNamedFunction);
testClassMock.getLogs(callsTo("myNamedFunction")).verify(happenedOnce);
Run Code Online (Sandbox Code Playgroud)
所以稍微解释一下,ClassThatCallsRealClass 将一个函数作为参数并调用它。如果您要传入 (Instance Of RealClass).myNamedFunction,这将依次调用 RealClass 上的私有函数 _theNamedFunction。但是,如果您尝试模拟 RealClass 并将所有调用从 myNamedFunction 重定向到 RealClass myNamedFunction,这似乎会失败。我没有看到任何明确的方法来让它发挥作用,但我认为这是可能的。
有任何想法吗?