我正在尝试为我的Web API设置单元测试.我已经在网上找到了一些我在网上找到的零碎的测试代码.我已经发送了测试请求并收到响应,但我仍然坚持测试响应.
所以这就是我到目前为止所拥有的.这是使用xunit测试包,但我不认为这对我想要实现的目标很重要.
(为代码混搭道歉)
[Fact]
public void CreateOrderTest()
{
string baseAddress = "http://dummyname/";
// Server
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute("Default", "api/{controller}/{action}/{id}",
new { id = RouteParameter.Optional });
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
HttpServer server = new HttpServer(config);
// Client
HttpMessageInvoker messageInvoker = new HttpMessageInvoker(new InMemoryHttpContentSerializationHandler(server));
// Order to be created
MotorInspectionAPI.Controllers.AccountController.AuthenticateRequest requestOrder = new MotorInspectionAPI.Controllers.AccountController.AuthenticateRequest() {
Username = "Test",
Password = "password"
};
HttpRequestMessage request = new HttpRequestMessage();
request.Content = new ObjectContent<MotorInspectionAPI.Controllers.AccountController.AuthenticateRequest>(requestOrder, new JsonMediaTypeFormatter());
request.RequestUri = new Uri(baseAddress + "api/Account/Authenticate");
request.Headers.Accept.Add(new …
Run Code Online (Sandbox Code Playgroud) 我试图发现两个JSON字符串是否相等.
这是我之前尝试过的
var obj1 = Json.Decode("{\"ValueA\":1,\"ValueB\":2}")
var obj2 = Json.Decode("{\"ValueB\":2,\"ValueA\":1}")
// But then there seems to be no way to compare the two objects?
Run Code Online (Sandbox Code Playgroud)
当然,必须存在一种优雅简单的方式来实现我认为的常见任务?
为什么以下两行会返回不同的结果?
("test" instanceof String) // returns false
("test".constructor == String) // returns true
Run Code Online (Sandbox Code Playgroud)
在镀铬版本28.0.1500.95 m的控制台中测试
对于本机类型,它的工作方式有所不同吗
我无法弄清楚如何将道具传递给组件.这很重要,因为我不想在componentDidMount方法中获取数据,因为它对搜索引擎是不可见的.
我的代码看起来像这样
const router =
<Route path="/" component={App}>
<IndexRoute onEnter={redirectToLogin} component={LandingPage} />
<Route path="panel" component={ ControlPanel }>
...
</Route>
<Route
path="/:handle"
onEnter={maybeRedirectToHome}
getComponent={(location, callback)=> {
getSiteHandleByName(location.pathname.slice(1))
.then(function(handle){
if (handle){
callback(null, Portfolio)
} else {
callback(null, NotFound)
}
})
.catch(callback)
}}
getChildRoutes={(location, callback)=> {
callback(null, portfolioRoutes)
}}
/>
</Route>
Run Code Online (Sandbox Code Playgroud)
我正在尝试在用户访问有效网址时提供投资组合React App,mysite.com/thishandleisvalid
但我还需要在该getComponent
点获取该应用的所有内容并将其作为属性传递.例如,你通常会做这样的事情<Portfolio contentItems={fetchedItems} />
.
这样做有可能吗?
我最近一直在使用JavaScript工作,并创建了一些大型函数集合.我发现需要有子功能,我想要从主库中分离但仍然包含在主库中,但还没有找到一个优雅的方法来做到这一点.
以下是我目前使用的几个例子
所以我通常会像这样设置我的主库
// Main library
var animals = function(settings){
// Main library stuff
}
Run Code Online (Sandbox Code Playgroud)
添加单独封装但仍属于主库的子类/子功能...
这是第一种使用对象文字表示法的方法
animals.prototype.dogs = {
addDog: function(){
// Can only access the dogs object
var test = this;
},
removeDog: function(){}
}
// Usage of the whole thing
var animalsInstance = new animals({a: 1, b: 3});
animalsInstance.dogs.addDog();
Run Code Online (Sandbox Code Playgroud)
虽然我真的很喜欢这种语法我永远不会真正使用它,因为没有办法在dog对象里面的任何函数中引用动物实例.所以我想出了这个符号作为替代品
animals.prototype.dogs = function(){
var parent = this;
return {
addDog: function(){
// The animals instance
var test = parent;
// The dogs instance
var test2 = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试这样做,到目前为止我发现了一个firefox插件,它将我的.sqlite文件转换为某种.sql创建脚本(需要一些关于这是什么格式的建议,是sqlite,但那有什么区别这与.sqlite文件之间?).
我试过在MySQL和MSSQL中执行它并且它不会运行所以我猜它是某种sqlite语法.
无论如何我可以转换这个.sql文件,所以它是用MSSQL语法放入我的数据库?
每当用户运行项目时,我都试图运行此jar为节点应用程序提供我的JavaScript代码。我尝试编辑.njsproj文件以包括我的自定义生成任务(请参见下文),但我认为我已经认为.njsproj文件不能以与其他Visual Studio项目文件相同的方式工作。
无论如何,我可以使我的任务自动化吗?
找不到任何有用的信息或在Google上有效的信息。只要可以自动化,不要介意使用什么技术来完成这项工作。
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Plovr>plovr\plovr.jar</Plovr>
<PlovrConfig>plovr\plovr-config-debug.js</PlovrConfig>
</PropertyGroup>
<Target Name="BeforeBuild">
<Message Text="Plovr: $(Plovr)"/>
<Message Text="PlovrConfig: $(PlovrConfig)"/>
<Exec Command=""C:\Program Files (x86)\Java\jre7\bin\java.exe" -jar $(Plovr) build $(PlovrConfig)"/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的节点应用程序设置 everyauth。尽管我已经达到了我不知道如何完成的一步。
它要求设置local.host
为 的别名localhost
,但它引用了一些 linux 文件夹,我使用的是 windows。
这是我所困惑的确切说明。
重要提示 - 某些 OAuth 提供程序不允许回调到 localhost,因此您需要创建一个名为 local.host 的 localhost 别名。确保设置 /etc/hosts,以便 127.0.0.1 也与“local.host”关联。因此,在 /etc/hosts 文件中,其中一行将如下所示:“127.0.0.1 localhost local.host”
在 Windows 上如何实现这一点?
如果执行以下语句
"Test a b " + "c"
// Output
// "Test a b c"
Run Code Online (Sandbox Code Playgroud)
但如果你执行以下操作,它会被"c"
视为一个数字.
"Test a b " + + "c"
// Output
// "Test a b NaN"
Run Code Online (Sandbox Code Playgroud)
为什么两个连续的+
符号将字符串视为一个数字?
镀铬测试 40.0.2214.111 m
我正在使用带有node.js工具的Visual Studio.我的项目无法启动,它正在抛出错误.
Error: Cannot find module 'mongodb'
Run Code Online (Sandbox Code Playgroud)
这是我之前安装的软件包,我想也许全局软件包目录可能是一个有用的地方,有谁知道它位于何处?
我把它缩小到了我的时候
require('mongoose')
Run Code Online (Sandbox Code Playgroud)
我有mongoose
包,我有mongodb安装(正确的我认为,而不是包,但实际的东西,这东西混淆了我的地狱),所以不知道为什么它抱怨.
说我有一个字符串"AB12"
,什么是最好的(最简单的)方法来抓住这两个部分"AB"
和"12"
.
其他有效字符串分割可能是"A1"
,"AA1"
,"A12"
.这适用于JavaScript电子表格应用程序,因此字符串始终与电子表格范围相关.
javascript ×4
node.js ×3
c# ×2
everyauth ×1
json ×1
msbuild ×1
react-router ×1
sql ×1
sqlite ×1
unit-testing ×1
xunit ×1
xunit.net ×1