我正在使用jasmine对一个angularjs控制器进行单元测试,该控制器将范围上的变量设置为调用返回promise对象的服务方法的结果:
var MyController = function($scope, service) {
$scope.myVar = service.getStuff();
}
Run Code Online (Sandbox Code Playgroud)
服务内部:
function getStuff() {
return $http.get( 'api/stuff' ).then( function ( httpResult ) {
return httpResult.data;
} );
}
Run Code Online (Sandbox Code Playgroud)
这在我的angularjs应用程序的上下文中工作正常,但在茉莉花单元测试中不起作用.我已确认"then"回调正在单元测试中执行,但$ scope.myVar承诺永远不会被设置为回调的返回值.
我的单元测试:
describe( 'My Controller', function () {
var scope;
var serviceMock;
var controller;
var httpBackend;
beforeEach( inject( function ( $rootScope, $controller, $httpBackend, $http ) {
scope = $rootScope.$new();
httpBackend = $httpBackend;
serviceMock = {
stuffArray: [{
FirstName: "Robby"
}],
getStuff: function () {
return $http.get( 'api/stuff' ).then( function ( …Run Code Online (Sandbox Code Playgroud) 我正在dataclasses与 SQLAlchemy 经典映射范例结合使用。当我为和字段dataclass定义组合默认值时,SQLAlchemy 不会填充 和,但它会填充和字段。例如下面的代码:intstrintstrListdatetime
from dataclasses import dataclass, field
from typing import List
from datetime import datetime
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, ARRAY, TIMESTAMP
from sqlalchemy.orm import sessionmaker, mapper
metadata = MetaData()
person_table = \
Table('people', metadata,
Column('id', Integer, primary_key=True, autoincrement=True),
Column('name', String(255)),
Column('age', Integer),
Column('hobbies', ARRAY(String)),
Column('birthday', TIMESTAMP)
)
@dataclass
class Person:
id: int = None
name: str = ''
age: int = 0 …Run Code Online (Sandbox Code Playgroud)