Javascript 用Jasmine测试TypeScript类

Javascript 用Jasmine测试TypeScript类,javascript,unit-testing,typescript,jasmine,Javascript,Unit Testing,Typescript,Jasmine,我想问你们,我如何测试接受另一个类的构造函数实例的类。例如,我想测试方法“hasChildRoutes()”: 我为此编写了糟糕的单元测试(我正在创建另一个类的新实例,这在我看来是糟糕的): 在arrange/act/assert中提供依赖项实例作为arrange的一部分是完全有效的 话虽如此,如果您想单独测试a(这取决于b),您可以提供一个模拟b,例如,使用sinonjs:就这一点考虑一下 您的测试看起来不错,但似乎没有必要以这种方式在每次测试之前和之后使用。它使测试变得混乱和不可读。 就是这

我想问你们,我如何测试接受另一个类的构造函数实例的类。例如,我想测试方法“hasChildRoutes()”:

我为此编写了糟糕的单元测试(我正在创建另一个类的新实例,这在我看来是糟糕的):


在arrange/act/assert中提供依赖项实例作为arrange的一部分是完全有效的


话虽如此,如果您想单独测试
a
(这取决于
b
),您可以提供一个模拟
b
,例如,使用sinonjs:

就这一点考虑一下

您的测试看起来不错,但似乎没有必要以这种方式在每次测试之前和之后使用。它使测试变得混乱和不可读。 就是这样,

it('should return false when Route has no child routes', () => {
// arrange
routeSetting = new RouteSetting(1, '');
routeConfig = new RouteConfig('', '', routeSetting, [], '');
// act
route = new Route('', routeConfig);
// assert
expect(route.hasChildRoutes()).toBeFalsy();
});
另外,hasChildRoutes()不应该是RouteConfig的属性吗?而不是路线

 beforeEach(() => {
        routeSetting = new RouteSetting(1, '');
        routeConfig = new RouteConfig('', '', routeSetting, [], '');
    });


    describe('Methods test', () => {
        var childRoute: Route;

        beforeEach(() => {
            route = new Route('', routeConfig);
        });

        it('sould return false when Route has no child routes', () => {
            expect(route.hasChildRoutes()).toBeFalsy();
        });

        it('sould return true when Route has child routes', () => {
            routeConfig = new RouteConfig('', '', routeSetting, [route], '');
            route = new Route('', routeConfig);

            expect(route.hasChildRoutes()).toBeTruthy();
        });
    });
it('should return false when Route has no child routes', () => {
// arrange
routeSetting = new RouteSetting(1, '');
routeConfig = new RouteConfig('', '', routeSetting, [], '');
// act
route = new Route('', routeConfig);
// assert
expect(route.hasChildRoutes()).toBeFalsy();
});