小编dee*_*eek的帖子

单元测试角度2服务注入后不运行回调

所以我已经为我的组件创建了单元测试,但是需要一些单独的服务.但是,当我尝试注入它们时(正在测试的服务方法不是异步).

describe('SearchService', () => {
    beforeEach(() => {
        TestBed.configureTestingModule({
            providers: [
                SearchService
            ]
        });

    });


    it("should build Url String", () => {
        inject([SearchService], (searchService: SearchService) => {
            spyOn(searchService, 'buildURL');
            console.log("should be logging like a boss");
            searchService.buildURL("test", "coursename", 2);
            expect(searchService.buildURL).toHaveBeenCalled();
            expect(searchService.buildURL("test", "coursename", 2)).toBe(['1']);
            expect(searchService.buildURL("test", "coursename", 2)).toBeFalsy();
        });
    });

});
Run Code Online (Sandbox Code Playgroud)

注入从未实际运行回调!test识别它的声明但是没有错误地传递.

内部的console.log语句从不运行,并且测试设计为失败传递,因此我假设注入无法运行.

unit-testing karma-jasmine angular

14
推荐指数
1
解决办法
613
查看次数

为什么我的react组件没有更新状态更新?

我有一个我构建的地图应用程序,需要一些地图图标在按下按钮后显示/消失,但我无法弄清楚当我从它的父项组件传入一个新的体育属性时如何设置它来重新渲染组件:

父加载组件:

<SimpleMap sports=[default value and future values go here] />
Run Code Online (Sandbox Code Playgroud)

简单的地图组件(简化):

constructor(props) {
  (props);
  this.state = {
    events: [{venue: {lat: 2, lon: 1}}],
    sports: ["baseball", "football",  "paddle", "soccer", "boxing", "dart", "biking", "golf", "hockey", "inline-skating", "tennis", "volleyball", "skateboard", "kickball", "bowling", "pool", "ride", "hike", "ice-skating"]
  };
};

componentWillReceiveProps (nextProps) {
  this.setState({events: [{venue: {lat: 2, lon: 1}}],
                  sports: nextProps.sports});
  console.log(nextProps.sports);
}

static defaultProps = {
  center: {lat: 36.160338, lng: -86.778780},
  zoom: 12,
  sports: ["baseball", "football",  "paddle", "soccer", "boxing", "dart", "biking", "golf", "hockey", …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

9
推荐指数
1
解决办法
1万
查看次数

Reactjs:setState总是失败并在componentDidMount中返回undefined

使用setState()有奇怪的错误,我总是没有设置为state:

错误代码:

TypeError:无法读取undefined(...)的属性'setState'

class HelloWorld extends React.Component {
constructor() {
    super();
    this.state = {listings:[]};
};

componentDidMount (){
    fetch('./javascripts/data.json').then(function(response) {
        return response.json()
    }).then(function(json) {
       console.log('parsed json ', json.listings);
        this.setState({listings: 'test string'});
    }).catch((error) => {
        console.log(error);
    })
}
render () {
    return (
        <ListingUser userData={this.state.listings} />
    );
}
}

    ReactDOM.render(
        <HelloWorld />,
        document.getElementById('example')
    );
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs

2
推荐指数
1
解决办法
3193
查看次数

如何将长数字字符串解析为数字?

我有一些 Id 需要从强转换为数字,但是每当我使用 parseInt() 或 Number() 时,我都会得到一个双精度型小数

1.01038295007818e+016.0
Run Code Online (Sandbox Code Playgroud)

我需要将字符串转换为数字。

javascript

1
推荐指数
1
解决办法
7973
查看次数