我刚开始使用JavaFX Scene Builder来构建一个小应用程序.
它由一个属于'login.fxml'的控制器类'Login.java'组成,其中FXML文件'registrierung.fxml'通过一个名为'registrationClicked(ActionEvent event)'的方法加载:
public class Login {
@FXML
private void registrationClicked(ActionEvent event){
try{
((Node) (event.getSource())).getScene().getWindow().hide();
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/fxml/registrierung.fxml"));
Parent root = (Parent) loader.load();
Stage stage = new Stage();
Scene scene = new Scene(root);
stage.setTitle("Registration");
stage.setScene(scene);
stage.setResizable(false);
stage.show();
} catch(IOException e){
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想通过根节点vboxRoot在控制器类'Registrierung.java'中引用'registrierung.fxml'的阶段:
@FXML
private VBox vboxRoot;
Stage stage = (Stage) vboxRoot.getScene().getWindow();
Run Code Online (Sandbox Code Playgroud)
但是'getScene()'总是会导致NullPointerException.在Scene Builder中调整两个FXML文件的控制器类.
这就是我在'registrierung.fxml'中设置rood节点的方法:
<VBox fx:id="vboxRoot" maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="267.0" prefWidth="355.0" stylesheets="@../css/styles.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="businesslogik.Registrierung">
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我刚开始通过Jasmine在AngularJS中编写我的第一个单元测试.
不知怎的,我仍然不明白为什么我应该嘲笑$ httpBackend.为了弄清楚我还不清楚什么,我会写一个小例子:
想象一下,我有一个从URL获取数据的服务 (myService):
function getData() {
return $http.get("http://example.com/data")
.then(function (response) {
return response.data;
});
}
Run Code Online (Sandbox Code Playgroud)
假设对URL" http://example.com/data " 的GET调用返回以下数据:
{
firstname: "John",
lastname: "Doe"
}
Run Code Online (Sandbox Code Playgroud)
相应的测试看起来像这样:
describe("Service: myService", function () {
beforeEach(module("myApp"));
var myService, $httpBackend;
beforeEach(inject(function (_myService_, _$httpBackend_) {
myService = _myService_;
$httpBackend = _$httpBackend_;
}));
afterEach(function () {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
it("should get data", function() {
var mockData = {datakey: "datavalue"};
$httpBackend.whenGET("http://example.com/data").respond(mockData);
var promise = myService.getData();
$httpBackend.flush();
promise.then(function(response){
expect(response).toEqual(mockData)
});
}) …Run Code Online (Sandbox Code Playgroud) 如何在AngularJS中生成HMAC-SHA256签名?
我找不到有关这个主题的任何消息来源.
angularjs ×2
hmac ×1
httpbackend ×1
jasmine ×1
java ×1
javafx-8 ×1
javascript ×1
sha256 ×1
unit-testing ×1