我试图让这个工作,但我似乎无法在任何地方找到解决方案.尝试编译此单文件应用程序时:
import http = require('http')
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
Run Code Online (Sandbox Code Playgroud)
使用命令"tsc app.ts --module'commonjs'"我得到以下错误(不使用--module标志给我一个额外的错误告诉我,我需要它来编译外部模块):
error TS2071: Unable to resolve external module '"http"'.
error TS2072: Module cannot be aliased to a non-module type.
Run Code Online (Sandbox Code Playgroud) 好的,我有一个奇怪的问题.
我在C#Test项目中使用NUnit和Moq.我认为你可以忽略模拟对象,因为真正的问题在于UserManager.AddUser()没有被正确执行.
以下代码永远不会在UserManager.AddUser()的开头到达断点,因此由于NullPointerException而导致Assertion失败.
[Test]
enter code here
public void AddUser_NoPassword_GeneratesPassword()
{
//assert
var userRepositoryFake = new Mock<IUserRepository>();
userRepositoryFake.Setup(x => x.GetUser(It.IsAny<string>(), It.IsAny<bool>())).Returns((User)null);
userRepositoryFake.Setup(x => x.SaveUser(It.IsAny<User>())).Returns(new Mock<User>().Object);
var userManager = new UserManager(userRepositoryStub.Object);
var createUserViewModel = new CreateUserViewModel { Username = "username" };
//act
var validationErrors = userManager.AddUser(createUserViewModel);
//assert
Assert.IsNotNullOrEmpty(createUserViewModel.Password);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我添加这个断言:
//assert
Assert.IsEmpty(validationErrors); //new assertion
Assert.IsNotNullOrEmpty(createUserViewModel.Password);
Run Code Online (Sandbox Code Playgroud)
到达AddUser()中的断点,测试成功.似乎测试根本不执行AddUser(),除非它的返回值用于某些东西.