小编aw1*_*975的帖子

使用Jasmine和TypeScript进行单元测试

我正在尝试使用Jasmine编写一个用Typescript编写的单元测试.在我的单元测试文件中有以下内容,Resharper提示我从jasmine.d.ts导入类型的链接.

/// <reference path="sut.ts" />
/// <reference path="../../../scripts/typings/jasmine/jasmine.d.ts" />

describe("Person FullName", function () {
    var person;

    BeforeEach(function () {
        person = new Person();
        person.setFirstName("Joe");
        person.setLastName("Smith");
    });

    It("should concatenate first and last names", function () {
        Expect(person.getFullName()).toBe("Joe, Smith");
    });
});
Run Code Online (Sandbox Code Playgroud)

所以我点击链接并最终得到以下内容(实际上resharper只用"Jasmine."前缀了describe函数,所以我手动为其他Jasmine调用做了前缀):

/// <reference path="sut.ts" />
/// <reference path="../../../scripts/typings/jasmine/jasmine.d.ts" />
import Jasmine = require("../../../Scripts/typings/jasmine/jasmine");

Jasmine.describe("Person FullName", function () {
    var person;

    Jasmine.BeforeEach(function () {
        person = new Person();
        person.setFirstName("Joe");
        person.setLastName("Smith");
    });

    Jasmine.It("should concatenate first and last names", function () {
        Jasmine.Expect(person.getFullName()).toBe("Joe, Smith"); …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jasmine chutzpah typescript

42
推荐指数
5
解决办法
5万
查看次数

使用存储库模式使用ThenIclude来加载实体

我的应用程序使用Entity Framework 7和存储库模式.

存储库上的GetById方法支持对子实体的急切加载:

    public virtual TEntity GetById(int id, params Expression<Func<TEntity, object>>[] paths)
    {
        var result = this.Set.Include(paths.First());
        foreach (var path in paths.Skip(1))
        {
            result = result.Include(path);
        }
        return result.FirstOrDefault(e => e.Id == id);
    }
Run Code Online (Sandbox Code Playgroud)

使用如下检索产品(其ID为2)以及订单和与该产品关联的部件:

productRepository.GetById(2, p => p.Orders, p => p.Parts);
Run Code Online (Sandbox Code Playgroud)

我想增强此方法以支持嵌套深度超过一个级别的实体的预先加载.例如,假设a Order有自己的LineItem's 集合.

在EF7之前,我相信以下内容也可以检索与每个订单关联的LineItem:

productRepository.GetById(2, p => p.Orders.Select(o => o.LineItems), p => p.Parts);
Run Code Online (Sandbox Code Playgroud)

但是,EF7似乎不支持这一点.相反,有一个新的ThenInclude方法可以检索其他级别的嵌套实体:

https://github.com/aspnet/EntityFramework/wiki/Design-Meeting-Notes:-January-8,-2015

我不确定如何更新我的存储库以支持使用多个级别的预先加载的实体进行检索ThenInclude.

c# entity-framework repository-pattern eager-loading entity-framework-core

10
推荐指数
2
解决办法
4013
查看次数

在ASP.NET Core RC2应用程序中定期运行后台任务

我正在研究ASP.NET Core RC2应用程序.此应用程序需要定期调用某些任务,例如发送电子邮件或调用特定的业务逻辑.

我知道有一些第三方库,如Hangfire或Quartz.NET,可以提供开箱即用的调度功能.但是我不认为其中任何一个当前都支持ASP.NET Core RC2.是否有任何其他可用的选项与ASP.NET Core RC2兼容?

如果没有,我想一个可能的选择是在一个单独的Windows服务中使用这些第三方库之一,然后可以定位支持的.NET版本.然后,该服务可以通过其Web API定期向ASP.NET应用程序发出请求,以便调用任务.

但是我不希望有单独的服务,因为它增加了移动部件的数量并使我们的应用程序的部署变得复杂.

c# asp.net quartz.net hangfire asp.net-core

9
推荐指数
2
解决办法
7301
查看次数

编译经典的ASP文件

我继承了一个用 VBScript 编写的经典 ASP 应用程序。我也没有经验。我使用 Visual Studio 2013 作为我的开发环境。

请您让我知道是否可以预编译 ASP 文件?我只想能够查看我的编译错误并确保应用程序在运行之前编译。

运行应用程序时,我遇到了运行时错误(HTTP 状态代码 500),我不知道这是由于编译错误还是其他原因。

谢谢,

vbscript asp-classic visual-studio

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

单元测试以验证是否调用了基类方法

我有一个基类:

public abstract class MyBaseClass
{
    protected virtual void Method1()
    {    
    }
} 
Run Code Online (Sandbox Code Playgroud)

和派生类:

public class MyDerivedClass : MyBaseClass
{
    public void Method2()
    {
        base.Method1();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想编写一个单元测试Method2来验证它是否Method1在基类上调用.我正在使用Moq作为我的模拟库.这可能吗?

我遇到了一个相关的SO链接:

使用Moq模拟基类方法调用

其中第二个答案表明可以通过CallBase在mock对象上将property 设置为true 来实现.但是,目前尚不清楚如何Method1验证对基类方法(在上例中)的调用.

感谢任何协助.

c# unit-testing moq

3
推荐指数
2
解决办法
6776
查看次数

.Net Core 1.0 中 Web API 的版本控制

我想使用以下库来为我的 Web API 应用程序实现版本控制(使用 .NET Core 1.0)。然而,由于这个库目前是预发布的,我无法找到它的任何文档。

https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.Versioning/1.0.0-beta1

有没有关于如何使用这个库的例子?或者源代码?是否支持在 URL 查询字符串中指定版本?例如http://www.example.com/api/products?version=1

我还考虑过以下库,但它似乎不支持 .NET Core:

https://github.com/Sebazzz/SDammann.WebApi.Versioning

c# asp.net asp.net-web-api asp.net-web-api2 asp.net-core

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